CodeForces 630 R. Game(博弈论)

来源:互联网 发布:手机 麻将 源码 运营 编辑:程序博客网 时间:2024/05/02 23:26

Description
一学生因挂科被迫和老师玩游戏,游戏规则如下:在一个n*n的棋盘上轮流下棋,初始时棋盘全空,每次只能在空格上下棋,而且此空格上下左右不能有棋子,但是对角可以有棋子,最后谁无棋可下谁输。假设学生和老师都足够机智,现给出棋盘大小,如果先手赢则输出1,否则输出2
Input
一个整数n(1<=n<=10^18)
Output
先手赢输出1,后手赢输出2
Sample Input
1
Sample Output
1
Solution
博弈论,如果n为奇数,那么先手第一步将棋子下在正中,那么之后无论后手下哪儿,先手都可以将棋下在与后手上一步棋关于棋盘中心对称对称的位置,最后一定是后手无棋可下,此时输出1;如果n为偶数,那么无论先手下哪儿,后手都可以将棋下在与先手上一步棋关于棋盘中心对称的位置,最后一定是先手无棋可下,此时输出2
Code

#include<cstdio>#include<iostream>using namespace std;typedef long long ll;ll n;int main(){    while(~scanf("%I64d",&n))        printf("%d\n",n%2?1:2);    return 0;} 
0 0
原创粉丝点击