有大佬发个二维数组的解法吗?二维数组不会用

P1042 [NOIP2003 普及组] 乒乓球

开1维就够了
by xiaofeng_and_xiaoyu @ 2023-09-19 16:43:54


```cpp #include<bits/stdc++.h> char a[100015],c; using namespace std; int main(){ int x=0,y=0,i,n=0; cin>>c; while(c!='E'){ a[n]=c;n++; cin>>c; } for(i=0;i<n;i++){ if(a[i]=='W')x++;else y++; if(x>=11&&x-y>=2||y>=11&&y-x>=2){ cout<<x<<":"<<y<<endl;x=y=0; } } cout<<x<<":"<<y<<endl;x=y=0; cout<<endl; for(i=0;i<n;i++){ if(a[i]=='W')x++;else y++; if(x>=21&&x-y>=2||y>=21&&y-x>=2){ cout<<x<<":"<<y<<endl;x=y=0; } } cout<<x<<":"<<y<<endl;x=y=0; return 0; } ```
by zhengshuyue @ 2023-09-19 17:32:22


@[zhengshuyue](/user/910271) 跪谢佬
by Elysia_aimen @ 2023-09-19 18:56:43


- 这个也是可以的 ```cpp #include<bits/stdc++.h> using namespace std; char record; int a11,a21,b11,b21,score[10000][2],game; int main(){ while (cin >> record and record!='E'){ if(record == 'W'){a11++;a21++;} if (record == 'L'){b11++;b21++;} if ((a11 >= 11 and a11 - b11 >= 2)or(b11 >= 11 and b11-a11 >= 2)) { cout << a11 << ':' << b11 << '\n'; a11 = 0; b11 = 0; } if ((a21 >= 21 and a21-b21 >= 2)or(b21 >= 21 and b21-a21 >= 2)){ score[game][0] = a21; score[game][1] = b21; a21 = 0; b21 = 0; game++; } } cout << a11 << ':' << b11 << "\n\n"; for (int i=0;i<game;i++){ cout << score[i][0] << ':' << score[i][1] << '\n'; } cout << a21 << ':' << b21; return 0; } ```
by szh_DNCB @ 2023-09-23 20:26:53


|