[noip2014]生活大爆炸版石頭剪刀布 題解

NO IMAGE

D1T1想當然的模擬了。

不過為了方便起見,我們可以先手動算一個f陣列,這樣的話,在比較的時候會異常簡單。這可是一個非常有用的技巧。

#include<bits/stdc  .h>
using namespace std;
int n,na,nb,x,y;
int a[205],b[205];
int fa,fb;
const int f[5][5]={
0,-1,1,1,-1,
1,0,-1,1,-1,
-1,1,0,-1,1,
-1,-1,1,0,1,
1,1,-1,-1,0,
};
int main()
{
freopen("in.txt","r",stdin);
scanf("%d%d%d",&n,&na,&nb);
for(int i=0;i<na;i  )scanf("%d",&a[i]);
for(int i=0;i<nb;i  )scanf("%d",&b[i]);
for(int i=0;i<n;i  )
{
x=a[i%na],y=b[i%nb];
if(f[x][y]==1)fa  ;
if(f[y][x]==1)fb  ;
}
cout<<fa<<" "<<fb;
return 0;
} 

還有一點,如果下標是從0開始的話,取模操作也很簡單,不用特別判一下。