void suan() { long int x, y; printf("输入两个正整数:"); while (!scanf("%ld %ld", &x, &y) || x<=0 || y<=0) { getchar(); printf("\n错误!请输入两个正整数:"); } printf("最大公约数为 %ld\n", chu(x, y)); printf("最小公倍数为 %ld\n", x*y/chu(x, y)); }
int main() { int u,v; int i,f,num; scanf("%d",&num); for(i=0;i<num;i++) { chu(); scanf("%d%d",&n,&m); for(f=0;f<m;f++) { scanf("%d%d",&u,&v); if(find(u) == find(v)) { hash[find(u)]=1; } else { merge(find(u),find(v)); } } count(); copy(); chu(); scanf("%d%d",&n,&m); for(f=0;f<m;f++) { scanf("%d%d",&u,&v); if(find(u) == find(v)) { hash[find(u)]=1; } else { merge(find(u),find(v)); } } count(); if(1 == check()) { printf("Case #%d: YES\n",i+1); } else { printf("Case #%d: NO\n",i+1); } } return 0; }
int main() { int num,i,f; scanf("%d",&num); for(i=0; i<num; i++) { scanf("%d%d%d",&n,&m,&t); chu(); for(f=0; f<m; f++) { scanf("%d%d%d%d",&road[f].u,&road[f].v,&road[f].cap,&road[f].len); } qsort(road,m,sizeof(road[0]),cmp); for(f=0; f<m; f++) { spfa(f); if(dis[n] <= t) { printf("%d\n",road[f].cap); break; } } } return 0; }
int main() { int u,v,ans; int a,b,x,i,alen,blen; while(scanf("%d%d",&n,&m)!=EOF) { chu(); ans=0; for(i=0;i<m;i++) { scanf("%d%d%d",&a,&b,&x); u=find(a); v=find(b); if(u == v) { if(1 == check(a,b,x)) { ans++; } } else { alen=query(a); blen=query(b); merge(u,v,x+alen-blen); } } printf("%d\n",ans); } return 0; }
int main() { int i,cas,f,g; scanf("%d",&cas); for(i=0;i<cas;i++) { scanf("%d%d%d",&n,&m,&x); chu(); for(f=1;f<=n;f++) { for(g=1;g<=m;g++) { scanf("%d",&ball[f][g].loc); } } for(f=1;f<=n;f++) { for(g=1;g<=m;g++) { scanf("%d",&ball[f][g].cost); } qsort(&ball[f][1],m,sizeof(ball[f][1]),cmp); } printf("%d\n",dp()); } return 0; }
int main() { int f,i; while(scanf("%d",&nn)!=EOF) { group=nn; n=2*group; for(i=1;i<=nn;i++) { for(f=1;f<=nn;f++) { scanf("%d",&b[i][f]); } } if(0 == pan()) { printf("NO\n"); continue; } for(now=1;now<=31;now++) { chu(); for(i=1;i<=nn;i++) { for(f=i+1;f<=nn;f++) { if(i == f) { continue; } else if((i%2)==0 && (f%2)==0) { huo(i,f); } else if((i%2)==1 && (f%2)==1) { yu(i,f); } else { yihuo(i,f); } } } slove(); if(0 == check()) { printf("NO\n"); break; } } if(32 == now) { printf("YES\n"); } } return 0; }
int main() { int val,sum,u,v,i,nn,m; while(scanf("%d%d",&nn,&m)!=EOF) { chu(); sum=0; s=nn+m+1; t=nn+m+2; n=nn+m+2; for(i=1;i<=nn;i++) { scanf("%d",&val); add(i,t,val); } for(i=nn+1;i<=nn+m;i++) { scanf("%d%d%d",&u,&v,&val); sum+=val; add(s,i,val); add(i,u,INF); add(i,v,INF); } printf("%d\n",sum-isap()); } return 0; }
int main() { double sum; int l,r,i,f; while(scanf("%d%d",&n,&m),n+m) { chu(); for(i=0;i<m;i++) { scanf("%d%d",&l,&r); merge(find(l),find(r)); } for(i=n;i<n+6;i++) { p[i]=0; } for(i=n-1;i>=0;i--) { if(set[i] != i) { p[i]=p[find(i)]; continue; } sum=0; for(f=1;f<=6;f++) { sum+=p[i+f]; } p[i]=sum/6+1; } printf("%.4lf\n",p[0]); } return 0; }
int main() { int num,i,f,m,u,v,id; char ch[10]; scanf("%d",&num); for(i=0;i<num;i++) { printf("Case %d:\n",i+1); scanf("%d%d",&n,&m); chu(); for(f=0;f<m;f++) { scanf("%s",ch); if('T' == ch[0]) { scanf("%d%d",&u,&v); merge(find(u),find(v)); } else { scanf("%d",&id); id=find(id); printf("%d %d %d\n",id,d[id],path); } } } return 0; }
int main() { int sum,x,i,f,nn,ans; while(scanf("%d%d",&nn,&m)!=EOF) { chu(); for(i=1;i<=nn;i++) { sum=0; for(f=1;f<=m;f++) { scanf("%d",&x); sum<<=1; sum+=x; } id[sum]++; } for(i=m;i>=1;i--) { scanf("%d",&cap[i]); } build(); ans=isap(); if(nn == ans) { printf("YES\n"); continue; } printf("NO\n"); } return 0; }
int main() { int i,f,k,v; double ans,m,sun; while(scanf("%d",&n)!=EOF) { chu(); for(i=1;i<=n;i++) { scanf("%d",&k); for(f=0;f<k;f++) { scanf("%d%lf",&v,&sun); zan.v=v; zan.sun=sun/100; q[i].push_back(zan); } } scanf("%d%d%lf",&s,&t,&m); ans=bfs(); if(-1 == ans) { printf("IMPOSSIBLE!\n"); } else { printf("%.2lf\n",m*ans); } } return 0; }
int main() { int u,v,len; int i; while(scanf("%d%d",&n,&m),n+m) { chu(); for(i=0;i<m;i++) { scanf("%d%d%d",&u,&v,&len); add(u,v,len); } scanf("%d%d%d%d",&s1,&t1,&s2,&t2); spfa(s1); for(i=1;i<=n;i++) { sun[i]=dis[i]; } spfa(s2); for(i=1;i<=n;i++) { tang[i]=dis[i]; } printf("%d\n",spfa_tem()); } return 0; }
int main() { double x; int ji,i,f,k,m,xe,xs,flag; ji=0; while(scanf("%d",&n),n) { ji++; getchar(); chu(); for(i=0;i<n;i++) { gets(ch[i]); } scanf("%d",&m); getchar(); for(i=0;i<m;i++) { scanf("%s%lf%s",s,&x,e); xs=finds(); xe=finde(); if(-1==map[xs][xe]||x>map[xs][xe]) { map[xs][xe]=x; } } for(k=0;k<n;k++) { for(i=0;i<n;i++) { for(f=0;f<n;f++) { if(-1!=map[i][k]&&-1!=map[k][f]) { map[i][f]=maxx(map[i][f],map[i][k]*map[k][f]); } } } } flag=0; for(i=0;i<n;i++) { if(1<map[i][i]) { flag=1; break; } } if(1==flag) { printf("Case %d: Yes\n",ji); } else { printf("Case %d: No\n",ji); } } return 0; }
void main() { ru(num); int *min,*max,*m,*n,t,h; max=min=num; for(m=num+1;m<num+10;m++) { if(*m>*max) { max=m; } } t=num[9]; num[9]=*max; *max=t; for(n=num+1;n<num+10;n++) { if(*n<*min) { min=n; } } h=num[0]; num[0]=*min; num[0]=h; chu (num); }
int main() { int i,u,v; while(scanf("%d%d",&n,&m),n+m) { chu(); for(i=0;i<m;i++) { scanf("%d%d",&u,&v); u--; v--; add(u,v); } slove(); for(i=0;i<n;i++) { if(1 != belong[i]) { printf("No\n"); break; } } if(n == i) { printf("Yes\n"); } } return 0; }
int main() { int i,f,val,len,s,t,nn; char ch[110]; while(scanf("%d",&nn),nn) { chu(); n=2*nn+2; s=2*nn+1; t=2*nn+2; for(i=1;i<=nn;i++) { scanf("%d",&val); add(s,i,1,0); add(i+nn,t,1,0); map[i]=val; } for(i=1;i<=nn;i++) { scanf("%s",ch); len=strlen(ch); for(f=0;f<len;f++) { if('1' == ch[f]) { add(i,f+1+nn,1,-(map[i]^map[f+1])); } } } mcmf(s,t); printf("%d\n",-mincost); } return 0; }
int main() { int i,f,res,x,y,j; // freopen("D:\\in.txt","r",stdin); while(scanf("%d",&n)!=EOF) { chu(); for(i=0;i<n;i++) { scanf("%d:(%d)",&x,&j); for(f=0;f<j;f++) { scanf("%d",&y); q[ji].u=x; q[ji].v=y; next[ji]=first[x]; first[x]=ji; ji++; q[ji].u=y; q[ji].v=x; next[ji]=first[y]; first[y]=ji; ji++; } } res=xyl(); printf("%d\n",res/2); } return 0; }
int main() { char ch[2005]; int i,f,g,ans,num; scanf("%d",&num); for(i=0;i<num;i++) { scanf("%d",&n); chu(); for(f=1;f<=n;f++) { scanf("%s",ch); for(g=1;g<=n;g++) { if('1' == ch[g-1]) { q[f].push_back(g); du[g]++; } } } ans=topo(); printf("Case #%d: ",i+1); if(1 == ans) { printf("Yes\n"); } else { printf("No\n"); } } return 0; }
int main() { int i,f; while(scanf("%d",&n),n) { for(i=1;i<=n;i++) { for(f=1;f<=n;f++) { scanf("%d",&map[f][i]); } } for(i=1;i<=n;i++) { scanf("%d",&tax[i]); } while(scanf("%d%d",&t,&s),-2 != s+t) { chu(); spfa(); } } return 0; }
int main() { int i,num,f,u,v,len; scanf("%d",&num); for(i=0;i<num;i++) { scanf("%d%d",&n,&m); chu(); for(f=0;f<n-1;f++) { scanf("%d%d%d",&u,&v,&len); ru.u=v; ru.len=len; q[u].push_back(ru); ru.u=u; q[v].push_back(ru); } for(f=0;f<m;f++) { scanf("%d%d",&u,&v); tem.id=f; tem.u=u; qes[v].push_back(tem); tem.u=v; qes[u].push_back(tem); } lca(1,0); for(f=0;f<m;f++) { printf("%d\n",ans[f]); } } return 0; }
int main() { int flag,n,i; while(scanf("%d",&n),n) { chu(); for(i=0;i<n;i++) { scanf("%d",&que[i]); fun(que[i]); } flag=0; for(i=n-1;i>=0;i--) { if(-1 == hash[que[i]]) { if(1 == flag) { printf(" "); } printf("%d",que[i]); flag=1; } } printf("\n"); } return 0; }
int main() { char ch[25]; int dir,u,v; int i,cas,len,f,ans; scanf("%d",&cas); for(i=0; i<cas; i++) { chu(); scanf("%d",&nn); for(f=0; f<nn; f++) { scanf("%s%d",ch,&dir); len=strlen(ch); u=ch[0]-'a'+1; v=ch[len-1]-'a'+1; in[v]++; out[u]++; merge(find(u),find(v)); fl[u]=fl[v]=1; if(1 == dir) add(u,v,1); } ans=check(); printf("Case %d: ",i+1); puts(1==ans?"Well done!":"Poor boy!"); } return 0; }
int main() { int num,i,f,sum; scanf("%d",&num); for(i=0;i<num;i++) { scanf("%d",&n); sum=0; chu(); for(f=1;f<=n;f++) { scanf("%d",&que[f]); sum+=que[f]; } qsort(&que[1],n,sizeof(que[0]),cmp); if(0 != sum%4) { printf("no\n"); continue; } ave=sum/4; ci=0; flag=0; dfs(0,1); if(1 == flag) { printf("yes\n"); } else { printf("no\n"); } } return 0; }
int main() { int i,f,num; // freopen("D:\\in.txt","r",stdin); scanf("%d",&num); for(i=0;i<num;i++) { scanf("%d%d%d",&n,&m,&l); chu(); for(f=0;f<n;f++) { scanf("%d%d",&que[f].c,&que[f].w); } for(f=0;f<n;f++) { mul(que[f].c,que[f].w); } if(dp[m][l] < 0) { printf("0\n"); continue; } printf("%d\n",dp[m][l]); } return 0; }
int main() { int i,x,y,d,res; while(scanf("%d%d",&n,&m)!=EOF) { chu(n); for(i=0;i<m;i++) { scanf("%d%d%d",&x,&y,&d); if(-1==map[x][y]) { map[x][y]=d; map[y][x]=d; } else if(d<map[x][y]) { map[x][y]=d; map[y][x]=d; } } scanf("%d%d",&s,&t); res=bfs(); printf("%d\n",res); } return 0; }
int main() { int u,v,len,nn,m,i; while(scanf("%d%d",&nn,&m)!=EOF) { chu(); for(i=0;i<m;i++) { scanf("%d%d%d",&u,&v,&len); add(u,v+nn,1,len); } build(nn); n=2*nn+2; mcmf(nn*2+1,nn*2+2); if(maxflow < nn) { printf("-1\n"); } else { printf("%d\n",mincost); } } return 0; }
int main() { int i,f; char zan,cas=0; while(scanf("%d%d",&n,&m),n+m) { getchar(); cas++; chu(); for(i=1;i<=n;i++) { ch[i]=" "; for(f=1;f<=m;f++) { scanf("%c",&zan); if(zan < 'a') { ch[i]+=chuli[zan-'0']; } else { ch[i]+=chuli[zan-'a'+10]; } } getchar(); } m*=4; solve(); printf("Case %d: ",cas); print(); } return 0; }
int main() { int i,l; while(scanf("%d%d%d",&n,&m,&q)!=EOF) { chu(); for(i=0;i<m;i++) { scanf("%d%d%d",&que[i].u,&que[i].v,&que[i].len); } qsort(que,m,sizeof(que[0]),cmp); for(i=0;i<q;i++) { scanf("%d",&l); query[i].id=i; query[i].l=l; } qsort(query,q,sizeof(query[0]),cmp2); solve(); for(i=0;i<q;i++) { printf("%d\n",ans[i]); } } return 0; }
int main() { int i,f,res,m,n; while(scanf("%d%d%d",&m,&n,&t)!=EOF) { chu(m,n); getchar(); for(i=1;i<=m;i++) { for(f=1;f<=n;f++) { scanf("%c",&map[i][f]); if('@'==map[i][f]) { si=i; sf=f; map[i][f]='.'; } } getchar(); } res=bfs(); printf("%d\n",res); } return 0; }
int main() { int i,num,f,g; scanf("%d",&num); M=(1<<3)-1; for(i=0;i<num;i++) { scanf("%d",&n); chu(); for(f=0;f<n;f++) { for(g=0;g<3;g++) { scanf("%d",&loc[f][g]); } } build(); steiner(); if(INF == dis[0][M]) { printf("-1\n"); continue; } printf("%d\n",n-(dis[0][M]+1)); } return 0; }