您的位置:首页 > 其它

NOIP 2014 提高组 Day1 T1 生活大爆炸版石头剪刀布

2015-02-21 12:39 411 查看
【题意】给定石头剪刀布对应的输赢情况,两方赛N局,有对应的出手周期NA,NB,求最终两方分别赢了多少局

0 < N ≤ 200,0 < NA ≤ 200, 0 < NB ≤ 200

【构思】N=200,暴力

【实现】

#include <cstdio>

#include <cstring>

#include <cstdlib>

using namespace std;

const int d[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};

const int N=201;

int n;

int da
,db
,nowa,nowb,na,nb;

int wa,wb;

int main(void)

{

scanf("%d%d%d",&n,&na,&nb);

for (int i=1;i<=na;i++) scanf("%d",&da[i]);

for (int i=1;i<=nb;i++) scanf("%d",&db[i]);

for (int i=1;i<=n;i++)

{

nowa=nowa%na+1;

nowb=nowb%nb+1;

if (d[da[nowa]][db[nowb]]==1) wa++; else if (d[da[nowa]][db[nowb]]==-1) wb++;

}

printf("%d %d\n",wa,wb);

return 0;

}

【回顾】

[1] 性质转化思想:①字母与数的相互转化 ②树与序列的相互转化 ③环与序列的相互转化 ④多维与一维的相互转化

[2] C++的参数编号,不用小括号,直接如上写

[3] 对于轮回类问题的解决方法 ①直接暴力模拟 ②找周期,找规律

[4] 参数编号的化简思想,与实际情况的相互转化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: