Codeforces Round #658 (Div. 2)——B.Sequential Nim

Codeforces Round #658 (Div. 2)——B.Sequential Nim_第1张图片
首先读完题目的第一感受是这是一个博弈论的题目,有点想法其。但是考虑到这个比赛难度,他不会出太难的,所以就进行了尝试
思路

这个就是简单的博弈
主动权掌握在第一个碰到大于1的数的人手中,它可以通过全拿走或者剩余1个来控制剩下的节奏,从而获得比赛胜利

#include
using namespace std;
#define ll long long 
int main(void)
{
	int t;
	cin>>t;
	ll int a[100000];
	while(t--)
	{
		long int n;
		cin>>n;
		int temp=-1;
		for(long int i=0;i<n;i++)
		{
			cin>>a[i];
		}
		for(long int j=0;j<n;j++)
		{
			if(a[j]>=2&&temp==-1)
			{
				temp=j;
			}
		}
		if(temp==-1)
		{
			cout<<(n%2?"First":"Second")<<endl; 
		}
		else
		{
			cout<<(temp%2?"Second":"First")<<endl;
		}
	}
	return 0;
	
 } 

你可能感兴趣的:(算法)