BZOJ2463 谁能赢呢?

Description

小明和小红经常玩一个博弈游戏。给定一个n×n的棋盘,一个石头被放在棋盘的左上角。他们轮流移动石头。每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问过。谁不能移动石头了就算输。假如小明先移动石头,而且两个选手都以最优策略走步,问最后谁能赢?

Input

输入文件有多组数据。

输入第一行包含一个整数n,表示棋盘的规模。

当输入n为0时,表示输入结束。

Output

对于每组数据,如果小明最后能赢,则输出”Alice”, 否则输出”Bob”, 每一组答案独占一行。

Sample Input

2
0

Sample Output

Alice

HINT

对于所有的数据,保证1<=n<=10000。

正解:博弈

解题报告:

  最简单的题目,没有之一。

 1 //It is made by jump~
 2 #include<iostream>
 3 #include<cstdio>
 4 #include<cmath>
 5 #include<cstring>
 6 #include<cstdlib>
 7 #include<algorithm>
 8 #include<vector>
 9 using namespace std;
10 int n;
11
12 inline int getint(){
13     char c=getchar(); int w=0,q=0;
14     while(c!=‘-‘ && ( c<‘0‘ || c>‘9‘)) c=getchar();
15     if(c==‘-‘) c=getchar(),q=1;
16     while(c>=‘0‘ && c<=‘9‘) w=w*10+c-‘0‘,c=getchar();
17     return q?-w:w;
18 }
19
20 inline void work(){
21     while(1) {
22     n=getint();
23     if(n==0) break;
24     if(n&1) printf("Bob\n"); else printf("Alice\n");
25     }
26 }
27
28 int main()
29 {
30     work();
31     return 0;
32 }
时间: 2024-08-02 04:49:58

BZOJ2463 谁能赢呢?的相关文章

【bzoj2463】 谁能赢呢?

www.lydsy.com/JudgeOnline/problem.php?id=2463 (题目链接) 题意:一个n*n的棋盘,开始时左上角有一个棋子,每次可以把棋子向4个方向移动,但不能移动到曾经走过的格子上,无法移动者输,问是否存在先手必胜策略. Solution  手玩了一下n<=4的情况,发现当n是偶数时就有必胜策略,交上去果然AC..然而不会证明,于是翻了下别人的题解.  当n为偶数时,可以被2*1的骨牌完全覆盖,所以每次都走骨牌的另一端,而另一个 人只能走新的骨牌,直到没有为止 当

【中山市选2009】【BZOJ2463】谁能赢呢

Description 小明和小红经常玩一个博弈游戏.给定一个n×n的棋盘,一个石头被放在棋盘的左上角.他们轮流移动石头.每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问过.谁不能移动石头了就算输.假如小明先移动石头,而且两个选手都以最优策略走步,问最后谁能赢? Input 输入文件有多组数据. 输入第一行包含一个整数n,表示棋盘的规模. 当输入n为0时,表示输入结束. Output 对于每组数据,如果小明最后能赢,则输出"Alice", 否

bzoj2463: [中山市选2009]谁能赢呢?

奇偶即可判断输赢 #include<cstdio> #include<cctype> int read(){ int x=0;char c=getchar(); while(!isdigit(c)) c=getchar(); while(isdigit(c)) x=x*10+c-'0',c=getchar(); return x; } int main(){ int n; while(n=read()) { n%2?printf("Bob\n"):printf(

bzoj千题计划169:bzoj2463: [中山市选2009]谁能赢呢?

http://www.lydsy.com/JudgeOnline/problem.php?id=2463 n为偶数时,一定可以被若干个1*2 矩形覆盖 先手每次从矩形的一端走向另一端,后手每次走向一个新的矩形 所以先手必胜 n为奇数时,先手走完一步后,剩下同n为偶数 所以先手必败 #include<cstdio> using namespace std; int main() { int n; while(scanf("%d",&n)!=EOF) { if(!n)

bzoj2463: [中山市选2009]谁能赢呢?(博弈论)

2463: [中山市选2009]谁能赢呢? 题目:传送门 题解: 水体! n为偶数的话必能被1*2的矩形覆盖,那么因为一开始在左上角,所以先手一定可以先组成一个矩形,那么先手肯定必胜! n为奇数和上面相反,先手必输 代码: 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 int main() 5 { 6 int n; 7 while(scanf("%d",&n)!=EOF)

bzoj2463: [中山市选2009]谁能赢呢? 博弈

小明和小红经常玩一个博弈游戏.给定一个n×n的棋盘,一个石头被放在棋盘的左上角.他们轮流移动石头.每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问过.谁不能移动石头了就算输.假如小明先移动石头,而且两个选手都以最优策略走步,问最后谁能赢? Input 输入文件有多组数据. 输入第一行包含一个整数n,表示棋盘的规模. 当输入n为0时,表示输入结束. Output 对于每组数据,如果小明最后能赢,则输出"Alice", 否则输出"Bob

BZOJ-2463

2463: [中山市选2009]谁能赢呢? Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2321  Solved: 1711[Submit][Status][Discuss] Description 小明和小红经常玩一个博弈游戏.给定一个n×n的棋盘,一个石头被放在棋盘的左上角.他们轮流移动石头.每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问过.谁不能移动石头了就算输.假如小明先移动石头,而且两个选

人生,别认输,因为没人希望你赢

别认输,因为没人希望你赢:别靠人,因为只有自己最可靠:别乞求,因为别人等着看笑话: 别落魄,因为一堆人在等着落井下石:别回首,因为看到的是未修复的裂痕:别离愁,因为只会才下眉头却上心头: 别低头,因为地上没有黄金只有石头:别强求,因为硬摘的果实,没有甜头.有些事情不要太计较,睁一只眼,闭一只眼,就会过去的. 别哭穷,因为没人会给你钱:别喊累,因为没人会帮你做:别想哭,因为大家并不在乎: 最难打开的是心门,最难走的路是心路,最难过的桥是心桥,最难调整的是心态.世界上最难干的工程是改造人的内心世界.

参与51CTO学院2周年庆-我和学院的故事 赢大奖

参与51CTO学院2周年庆-我和学院的故事 赢大奖 光阴飞逝,转眼间,51CTO学院就要二周岁啦! 在这两年里您从51CTO学院收获了什么? 在这两年里您的工作有了怎样的发展? 为了感谢一路陪伴学院的各位学员,特邀各位一起来回忆与学院的点点滴滴,并有丰厚大奖等着大家! 快来论坛帖子[奖]51CTO学院2周年庆-我和学院的故事,在帖子下方回复谈谈自己对学院周年的感想,可以说说当初来学院的初衷,也可以说说在学员群遇到的人和事,总之和学院有关的都可以. 只要参与就有奖品!大家快来积极参与吧! 帖子传送