洛谷P1328生活大爆炸版石头剪刀布

题目链接:生活大爆炸版石头剪刀布

重点知识:二维数组算得分

若题目中有一堆条件让你去判断谁得分,可以采用二维数组算得分的方式。

比如:0代表石头,1代表剪刀,则若A出0,B出1,A得分为1,B得分为0。用数组表示成

int score[][2] = {{1,0},{0,1}};

下标代表人物出的手势,值代表得分(具体是谁的得分由你制定规则)
score(0,1)代表A出了拳头,B出了剪刀。A得分为1
score(1,0)代表A出了剪刀,B出了石头,A得分为0.

(当然反过来也行)

AC代码

#include <iostream>
using namespace std;

int A[210], B[210];
int m,t1,t2;
int score[][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 >> m>>t1>>t2;
	for (int i = 0; i < t1; i++) cin >> A[i];
	for (int i = 0; i < t2; i++) cin >> B[i];
	int a = 0, b = 0, score1 = 0, score2 = 0;
	while (m--)
	{
		score1 += score[A[a]][B[b]];
		score2 += score[B[b]][A[a]];
		a = (a + 1) % t1;
		b = (b + 1) % t2;
	}
	cout << score1 << " " << score2 << endl;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值