2018icpc南京——A - Adrien and Austin

it2026-06-08  3

又是一道思维题,首先可以想到如果k = 1,那么如果n是奇数则必是Adrien赢,偶数就是Austin赢,然后考虑k > 1的情况,如果k大于1了,并且n是奇数 那么Adrien可以第一次拿掉最中间的然后之后按对称Austin的位置去拿,就可以赢,那么如果是n是偶数就要之一如果k>=2那么Adrien一开始可以拿掉中间的两个来还原奇数的情况,所以还是Adrien赢,所以总结来说Austin赢的情况只有n = 0(特殊点) 或者n是偶数并且k=1,还要注意的是如果n<=k Adrien直接赢

代码如下(示例):

#include<bits/stdc++.h> using namespace std; int main() { int n,k; cin>>n>>k; if(!n){ cout<<"Austin"<<endl; } else{ if(n<=k) { cout<<"Adrien"<<endl; } else{ if(n%2!=0) { cout<<"Adrien"<<endl; } else{ if(k==1){ cout<<"Austin"<<endl; } else{ cout<<"Adrien"<<endl; } } } } }
最新回复(0)