CodeForces

来源:互联网 发布:喜欢的工作环境知乎 编辑:程序博客网 时间:2024/06/18 02:19

题目大意:

给你一串数,然后 A、B 两个人轮流从中取出一串连续的数。A取的数满足:该串数的和为奇数;B取的数,满足:该串数的和为偶数。轮到谁没办法取出满足要求的数串,那么谁就输了。现在告诉你 A 先取,并且两个人足够聪明,问你谁能赢。

分析:

其实只要分类讨论一下就好:
首先,如果给你的一串数是奇数,那么,A 直接都取走 B 输;
其次,如果给你一串偶数,那么,只要里面有奇数,那么 A 就有办法取走一串数,使得剩下的数的和变为奇数,那么此时,B 并没有办法通过取走若干个和为偶数的数串使得剩下的数串变成偶数,那么下一轮轮到 A 取,A 直接都取走就赢了。
所以 A 获胜的充分必要条件就是:所给数串中有至少一个奇数。

代码:

#include<bits/stdc++.h>using namespace std;int n,a;int main(){    scanf("%d",&n);    int flag=0;    for(int i=0;i<n;i++)    {        scanf("%d",&a);        if(a%2==1)flag=1;    }    if(flag==0)cout<<"Second"<<endl;    else cout<<"First"<<endl;    return 0;}
原创粉丝点击