一年没打OI连橙题都切不了了QAQ
我思路很脑瘫就是把每种输赢情况列举出来
然后一一对比谁赢谁加一分
对于周期我取了一个模来处理
可是只有40分 Holly Sh*t
能康康哪里错了吗~
代码:
#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 205;
int N, Na, Nb; // 总局数, A周期, B周期
int Ra[MAX_N], Rb[MAX_N]; // A出拳, B出拳
int Pa, Pb; //A的分数, B的分数
inline int cmp(int a, int b) //0剪刀, 1石头, 2布, 3蜥蜴人, 4斯波克
{
if(a == 0) //剪刀
{
if(b == 0) return 2;
if(b == 1) return -1;
if(b == 2 || b == 3 || b == 4) return 1;
}
if(a == 1) //石头
{
if(b == 0 || b == 3) return 1;
if(b == 1) return 2;
if(b == 2 || b == 4) return -1;
}
if(a == 2) //布
{
if(b == 0 || b == 3) return -1;
if(b == 2) return 2;
if(b == 1 || b == 4) return 1;
}
if(a == 3) //蜥蜴人
{
if(b == 3) return 2;
if(b == 0 || b == 1) return -1;
if(b == 4 || b == 2) return 1;
}
if(a = 4) //斯波克
{
if(b == 4) return 2;
if(b == 0 || b == 1) return 1;
if(b == 2 || b == 3) return -1;
}
}
int main()
{
cin >> N >> Na >> Nb;
for(int i = 0; i < Na; i++)
{
cin >> Ra[i];
}
for(int i = 0; i < Nb; i++)
{
cin >> Rb[i];
}
for(int i = 0; i < N; i++)
{
if(cmp(Ra[i % Na], Rb[i % Nb]) == 1) Pa ++; //a 赢的情况
if(cmp(Ra[i % Na], Rb[i % Nb]) == -1) Pb ++; //b 赢的情况
}
cout << Pa << " " << Pb << endl;
return 0;
}
蟹蟹!