样例全过,也没TLE,30分

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

AC代码: ```cpp #include <bits/stdc++.h> using namespace std; long long n, a1, b1, a[255], b[255], r, aa, bb; int main() { cin >> n >> a1 >> b1; for (int i = 0; i < a1; i++) { cin >> a[i]; } for (int i = 0; i < b1; i++) { cin >> b[i]; } a[a1] = a[0]; b[b1] = b[0]; for (int i = a1; i < n; i++) { a[i] = a[i % a1]; } for (int i = b1; i < n; i++) { b[i] = b[i % b1]; } //a1和b1应该不要加一,因为数组的下标只到a1-1和b1-1,但是加一也能过 for (int i = 0; i < n; i++) { if (a[i] == 0) { if (b[i] == 2 || b[i] == 3) { aa++; } else if (b[i] == a[i]) { } else { bb++; } } else if (a[i] == 1) { if (b[i] == 0 || b[i] == 3) { aa++; } else if (b[i] == a[i]) { } else { bb++; } } else if (a[i] == 2) { if (b[i] == 1 || b[i] == 4) { aa++; } else if (b[i] == a[i]) { } else { bb++; } } else if (a[i] == 3) { if (b[i] == 4 || b[i] == 2) { aa++; } else if (b[i] == a[i]) { } else { bb++; } } else { if (b[i] == 0 || b[i] == 1) //修改了此处,因为剪刀和石头对斯波克是输 //那么斯波克对剪刀和石头是斯波克赢 //布和蜥蜴人对斯波克是赢,对于斯波克来说 //布和蜥蜴人对斯波克是斯波克输 { aa++; } else if (b[i] == a[i]) { } else { bb++; } } } cout << aa << ' ' << bb; return 0; } ```
by TangHaohong @ 2023-08-02 22:04:14


|