BZOJ 2463 (博弈论)
来源:互联网 发布:window.open js 编辑:程序博客网 时间:2024/06/06 09:08
bzoj 2463 谁能赢呢?
Description
小明和小红经常玩一个博弈游戏。给定一个n×n的棋盘,一个石头被放在棋盘的左上角。他们轮流移动石头。每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问过。谁不能移动石头了就算输。假如小明先移动石头,而且两个选手都以最优策略走步,问最后谁能赢?
Input
输入文件有多组数据。
输入第一行包含一个整数n,表示棋盘的规模。
当输入n为0时,表示输入结束。
Output
对于每组数据,如果小明最后能赢,则输出”Alice”, 否则输出”Bob”, 每一组答案独占一行。
Sample Input
2
0
Sample Output
Alice
HINT
对于所有的数据,保证1<=n<=10000。
思路:
虽然是一道大水题,不过证明很有趣,所以写写。
首先对于n是偶数,一定能被1*2的骨牌覆盖!所以从起点开始,先手一定走的是骨牌的另一端,后手一定走的是骨牌的前一端,因此无论何时,先手总是可以走。因此先手必胜。
如果n是奇数,那么去掉一格后一定能被1*2的骨牌覆盖,但是先手从左上角走,就进入了这个S态(必胜态),那么和上边的分析一样了,因此先手必败。
#include<cstdio>int a;int main(){ while( ~scanf("%d", &a) && a){ if( a & 1 ) printf("Bob\n"); else printf("Alice\n"); } return 0;}
阅读全文
0 0
- BZOJ 2463 (博弈论)
- 【bzoj 2463】谁能赢呢?(博弈论)
- 【bzoj 2463】谁能赢呢?(博弈论)
- BZOJ 2463 谁能赢呢?[博弈论]
- 【bzoj 2463】[中山市选2009]谁能赢呢? 博弈论
- BZOJ 1188 分裂游戏 (博弈论)
- 【bzoj 1982】Moving Pebbles(博弈论)
- bzoj 2927 博弈论
- 【bzoj 1022】小约翰的游戏John(博弈论)
- BZOJ 3105 新Nim游戏(博弈论+线性基)
- BZOJ 4589 Hard Nim(博弈论+FWT+快速幂)
- BZOJ 3759 Hungergame 博弈论+高斯消元
- 【 bzoj 3895 】 取石子 - 博弈论
- BZOJ 1188 [SG定理][博弈论]
- bzoj 1299 巧克力棒 博弈论
- bzoj 1188 分裂游戏 博弈论
- bzoj 1982 Moving Pebbles 博弈论
- bzoj 4600 硬币游戏 博弈论
- DFA算法的简单说明与案例实现
- HDU2089[不要62]
- 高中数学(理科思维)不是特别特别好,未来能做成优秀程序员吗?(转载)
- apt-get 使用详解
- Thinking in java个人笔记2
- BZOJ 2463 (博弈论)
- JS-Date对象
- HOG Matlab代码 2
- 整理并解释一些c++编译和运行错误
- ubuntu下编译QT6报缺少 libxcb 的处理方法
- Quickstart for Python/WSGI applications This quickstart will show you how to deploy simple WSGI appl
- java八大数据类型详解及其变量详解
- 反射(2)——成员方法
- Python 中使用PIL中的resize 进行缩放