G-奶龙与小七拿石头
怎样才能赢呢?答案是对于最后一堆石头,轮到操作的那个人会赢。也就是说对于每一堆石头,轮到这个人操作,他可以拿走 a[i] - 1 颗石头,留一颗给另外那个人,这样就能保证对于以后的每一堆石头,都是这个人先操作,那么这个人必赢。
奶龙怎样才有机会赢呢?只要看看前缀有多少个 1 就好了,如果前缀 1 的个数为偶数,从第一堆石头数量 > 1 开始,就是奶龙先操作,那奶龙必赢。
那如果中间有某些堆的石头数量也为 1 呢?只需要前面 > 1的堆稍微调整一下就行了:先手把前面这一堆全部拿完,后手就只能拿数量为 1 的这堆了。
具体细节草稿纸写几个样例就好了。
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int MAX=1e9+7;
int t,n,m;
int a[1003];
void solve(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
int ans=1;
for(int i=1;i<n;i++)
{
if(a[i]==1 && ans==1)ans=2;
else if(a[i]==1 && ans==2)ans=1;
else if(a[i]!=1)break;
}
cout<<ans;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
t=1;
//cin>>t;
while(t--){
solve();
}
return 0;
}