NOIP 2014提高组 生活大爆炸版 石头剪刀布【题解】

vijos原题地址







自己发现的一些小问题

  1. 注意等于时 是两个等号
  2. 出拳的周期记得也要循环 也要判断
  3. 给出的表格是不完整的 你自己需要推出那一半的阴影结果
  4. 竖行表示第一个人 横行表示第二个人
  5. 记得给 得分 周期 这两个变量初始化
#include
using namespace std ;
int main()
{
	int afenshu = 0 ;
	int bfenshu = 0 ;
	int a[200] , b[200] ;
	int n , na , nb ;
	int al = 0 , bl = 0 ;
	cin >> n >> na >> nb ;
	for(int i=1 ; i <= na ; i++ )
		cin>>a[i] ;
	for(int i=1 ; i <= nb ; i++ )
		cin>>b[i] ;	
		
	
     for(int i=1 ; i<=n ; i++ )
     {
        al ++ ;
        bl ++ ;
        if(al == na + 1 )
        al = 1 ;//重新回到1 
        if(bl == nb + 1 )
        bl = 1 ;
        
	if(a[al] == 0)//两个等号啊啊啊啊啊调程序调了好久楞是没找出错误来呜呜呜 
	{
		if(b[bl] == 1) bfenshu ++ ;
		if(b[bl] == 2) afenshu ++ ;
		if(b[bl] == 3) afenshu ++ ; 
		if(b[bl] == 4) bfenshu ++ ;
	}
	
	if(a[al] == 1)
	{
		if(b[bl] == 0 )  afenshu ++ ;
		if(b[bl] == 2 )  bfenshu ++ ;
		if(b[bl] == 3 )  afenshu ++ ;
		if(b[bl] == 4 )  bfenshu ++ ;
	}
	if(a[al] == 2 )
	{
		if(b[bl] == 0 )	bfenshu ++ ;
		if(b[bl] == 1 )	afenshu ++ ;
		if(b[bl] == 3 )	bfenshu ++ ; 
		if(b[bl] == 4 )  afenshu ++ ;
	}
	if(a[al] == 3 )
	{
		if(b[bl] == 0 )	bfenshu ++ ;
		if(b[bl] == 1 )	bfenshu ++ ;
		if(b[bl] == 2 )	afenshu ++ ;
		if(b[bl] == 4 )	afenshu ++ ;
	} 
	if(a[al] == 4 )
	{
		if(b[bl] == 0 )	afenshu ++ ;
		if(b[bl] == 1 )	afenshu ++ ;
		if(b[bl] == 2 )	bfenshu ++ ;
		if(b[bl] == 3 )	bfenshu ++ ;
	}
//打表出省一!!!!	
//冲鸭!
}
	cout << afenshu << " " << bfenshu << endl ;
	return 0 ;
 } 



你可能感兴趣的:(提高组T1)