请大神帮忙看看哪里错了(只得了30分)

P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布

你们的代码就不能体现一下简洁性吗? ```cpp #include<bits/stdc++.h> using namespace std; const int N=205; int n,x,y,scorea,scoreb,a[N],b[N]; int p[5][5]={0,-1,1,1,-1, ``` 1,0,-1,1,-1, -1,1,0,-1,1, -1,-1,1,0,1, ```cpp 1,1,-1,-1,0}; int main() { scanf("%d%d%d",&n,&x,&y); for (int i=0;i<x;++i) scanf("%d",&a[i]); for (int i=0;i<y;++i) scanf("%d",&b[i]); for (int i=0;i<n;++i) { if (p[a[i%x]][b[i%y]]==1) ++scorea; else if (p[a[i%x]][b[i%y]]==-1) ++scoreb; } printf("%d %d\n",scorea,scoreb); return 0; } 这样多好懂。 ```
by zk2351265864 @ 2017-08-29 10:23:32


为什么平局要break呢 ```cpp #include<iostream> #include<cstdlib> #include<cstdio> using namespace std; int a[201],b[201]; int main() { int N,A,B,ai=0,bi=0,ap=0,bp=0; cin>>N>>A>>B; for(int i=1;i<=A;i++) cin>>a[i]; for(int i=1;i<=B;i++) cin>>b[i]; for(int i=1;i<=N;i++) { ai++; bi++; switch(a[ai]) { case 0: switch(b[bi]) { case 1:bp++;break; case 2:ap++;break; case 3:ap++;break; case 4:bp++;break; } break; case 1: switch(b[bi]) { case 0:ap++;break; case 2:bp++;break; case 3:ap++;break; case 4:bp++;break; } break; case 2: switch(b[bi]) { case 0:bp++;break; case 1:ap++;break; case 3:bp++;break; case 4:ap++;break; } break; case 3: switch(b[bi]) { case 0:bp++;break; case 1:bp++;break; case 2:ap++;break; case 4:ap++;break; } break; case 4: switch(b[bi]) { case 0:ap++;break; case 1:ap++;break; case 2:bp++;break; case 3:bp++;break; } break; } if(ai==A) ai=0; if(bi==B) bi=0; } cout<<ap<<" "<<bp; return 0; } ```
by 小猪之最 @ 2017-09-14 22:06:23


|