60分求助!!!

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

```cpp #include <bits/stdc++.h> using namespace std; const int MAXN = 200 + 10; int n, na, nb, a[MAXN], b[MAXN], suma, sumb; int vs[5][5] = {{0,0,1,1,0},{1,0,0,1,0},{0,1,0,0,1},{0,0,1,0,1},{1,1,0,0,0}}; int main() { cin >> n >> na >> nb; for(int i = 0; i < na; i++) cin >> a[i]; for(int i = 0; i < nb; i++) cin >> b[i]; for(int i = 0; i < n; i++) { suma += vs[a[i % na]][b[i % nb]]; sumb += vs[b[i % nb]][a[i % na]]; } cout << suma << " " << sumb << endl; return 0; } ``` 简单 明了 AC 顺便一提,这是上次某位仁兄求助时,我帮他改的代码 宁对照一下,应该可以理解吧~~~
by light_dream @ 2022-08-24 18:38:00


应该是if里面有打错的或者漏打的 建议敲一个二维数组存储.a[i][j]代表第一个人出i第二个人出j,第一个人赢或输.
by SamHJD @ 2022-08-24 18:39:17


@[light_dream](/user/642173) 方法懂了,谢谢!顺便提一句,你没抄题解吧,代码好像跟一篇题解的一样。
by chanthu2114 @ 2022-08-24 21:20:26


|