2019年ACM团队预备赛(题解)

    科技2024-04-12  95

    比赛地址

    A 来一起喝养乐多绿吧

    #include <stdio.h> void main() { int n,t,x,y,a,b,c[100],i=0,s; scanf("%d",&t); s=t; for(;t--;) { scanf("%d",&n); x=y=n; for(;x>=4||y>=3;) { a=x/4; b=y/3; n=n+a+b; x=x%4+a+b; y=y%3+a+b; } c[i]=n; i++; } for(i=0;i<s;i++) { printf("%d\n",c[i]); } }

    B 抽象圣经

    #include<stdio.h> #include<string.h> char a[1000][1000]; char c[10000]; int main() { int i,j,m,n,x; scanf("%d%d",&n,&m); for(i=1;i<=n;i++) { scanf("%d",&x); scanf(" %s",a[x]); } for(i=1;i<=m;i++) { scanf(" %s",c); int len=strlen(c); c[len]='#',c[len+1]='#',c[len+2]='#'; for(j=0;j<len;j++) { if(c[j]=='['&&c[j+1]=='e'&&c[j+2]=='m'&&c[j+3]==']') { j=j+3; int sum=0; while(1) { j++; if(c[j]=='[') break; sum=sum*10+c[j]-'0'; } printf("%s",a[sum]); j+=4; } else printf("%c",c[j]); } printf("\n"); } return 0; }

    C 王学姐的致富之路

    #include <stdio.h> int main() { int t,n,m,p,q; float x,y,z; scanf("%d\n",&t); for(;t>0;t--) { scanf("%d %d %d %d\n",&n,&m,&p,&q); y=(float)n/27; z=(float)m/64; if(y>=z) { x=197*z*p; if(x>=q) printf("YES\n"); else printf("NO\n"); } else { x=197*y*p; if(x>=q) printf("YES\n"); else printf("NO\n"); } } return 0; }

    D 不同的数字

    #include<stdio.h> int main(){ int l,r,x=-1; scanf("%d%d",&l,&r); for(int i=r;i>=l;i--){ int m=i,cnt=1,a[10]={0}; while(m){ a[m%10]++; m/=10; } for(int j=0;j<10;j++)if(a[j]>1)cnt=0; // printf("%d ",cnt); if(cnt)x=i; } if(x==-1)printf("-1"); else printf("%d",x); return 0; }

    E 分糖果

    #include<stdio.h> int main() { int i,j,m,n,a,b,c,d; int t; scanf("%d",&t); while(t--) { scanf("%d%d%d%d",&a,&b,&c,&d); int sum=0; sum=a+b+c+d; if(sum%2==0) { if(sum/2==a||sum/2==b||sum/2==c||sum/2==d||sum/2==a+b||sum/2==a+c||sum/2==a+d) printf("YES\n"); else printf("NO\n"); } else printf("NO\n"); } return 0; }

    F 弗朗明哥舞步

    #include<stdio.h> int main(){ int n; while(~scanf("%d",&n)){ if(n==0)break; int l=n%5; switch(l){ case 0: printf("-1\n"); break; case 1: printf("1\n"); break; case 2: printf("2\n"); break; case 3: printf("3\n"); break; case 4: printf("4\n"); break; default:; } } return 0; }

    G a/b

    #include<stdio.h> int main() { printf( "#include <stdio.h>\n" "\n" "int main()\n" "" "{\n" " int a,b;\n" " scanf(%%d%%d,&a,&b);\n" " printf(a/b=%%d\\n,a/b);\n" "\n" " return 0;\n" "}" ); return 0; }

    H 分数化简

    #include <stdio.h> void main() { int t,s,a[100],b[100],c[100],i=0,k=0,j=0,m; scanf("%d",&t); for(s=1;s<=t;s++) { scanf("%d %d",&a[i],&b[k]); i++,k++; } for(i=0,k=0;i<t;i++,k++,j++) { if(a[i]>b[k]) m=a[i]; else m=b[k]; for(;m>0;m--) { if(a[i]%m==0&&b[k]%m==0) break; } c[j]=m; if(a[i]%b[k]==0) printf("%d\n",a[i]/b[k]); else { printf("%d/%d\n",a[i]/c[j],b[k]/c[j]); } } }

    I闷声大发财

    #include<stdio.h> int main(){ int t; long long c,d,a,b; char cc,dd,aa,bb; scanf("%d",&t); for(int i=1;i<=t;i++){ scanf("%ld%c%ld%c",&c,&cc,&d,&dd); scanf("%ld%c%ld%c",&a,&aa,&b,&bb); // printf("%ld %ld %ld %ld\n",a,b,c,d); // printf("#%c#%c#%c#%c#\n",aa,bb,cc,dd); if(cc=='w')c*=10000; if(dd=='w')d*=10000; if(aa=='w')a*=10000; if(bb=='w')b*=10000; if(b-a<=d-c)printf("Case #%d: bu shi wen ti\n",i); else printf("Case #%d: shi wen ti\n",i); } return 0; }

    J 冒泡排序

    #include <stdio.h> void main() { int t,n,x[100],a[100][1000]; int i,j,k; scanf("%d",&t); for(i=0;i<t;i++) { scanf("%d",&n); x[i]=n; for(j=0;j<n;j++) scanf("%d",&a[i][j]); for(k=0;k<n;k++) { for(j=0;j<n-k-1;j++) { if(a[i][j]<a[i][j+1]) { int tmp; tmp=a[i][j]; a[i][j]=a[i][j+1]; a[i][j+1]=tmp; } } } } for(i=0;i<t;i++) { for(j=0;j<x[i];j++) { printf("%d",a[i][j]); if(j!=x[i]-1) printf(" "); } printf("\n"); } }

    K 回文串

    #include<stdio.h> #include<string.h> char a[10005]; int main() { int i,j,m,n; scanf("%s",a); n=strlen(a); int flag=0; for(i=0;i<n;i++) { if(a[i]>='a') { a[i]=a[i]-32; } } for(i=0,j=n-1;i<=j;i++,j--) { if(a[i]!=a[j]) { flag=1; break; } } if(flag==0) { printf("yes\n"); } else printf("no\n"); return 0; }
    Processed: 0.010, SQL: 8