hdu 4387 Stone Game
来源:互联网 发布:sql sever check 约束 编辑:程序博客网 时间:2024/06/04 19:06
长度为N的格子,Alice和Bob各占了最左边以及最右边K个格子,每回合每人可以选择一个棋子往对面最近的一个空格移动。最先不能移动的人获得胜利。
官方题解:
k=1时
很容易看出,n为奇数则后手获胜,n为偶数则先手获胜
k>1时
如果n=2*k+1,则棋 盘中只有一个空白的格子,每次移动必须移动到当前的空白格子上。先手方可以先随意选择一颗棋子占据中间的位置,然后双方互有移动,移动过程中双方肯定都会 选择一颗在己方半场的棋子移动到对方半场里。直到后手方还剩下一颗己方半场的棋子时,先手方把占据中间的棋子移动到对方半场,此时后手方必须移动剩下的这 颗棋子到空出的中间的格子里,先手方再把最后一颗棋子移动到新空出的位置即可获胜。
如果n>2*k+1,那么棋盘中就有了多余一个的 空白格子。如果n为奇数,先手方只要每次移动己方最靠后的一颗棋子即可获胜。并且第一次移动必须选择1号棋子,否则会让自己的棋子中间留下空白相当于把先 手让给了对方,这时对方只要采用先手策略即可获胜;如果n为偶数,那么先手方只需采用n=2*k+1时的策略在双方交会的时候保住先手即可,当然此时的第 一步还是1号棋子,否则将失去先手优势。
#include<iostream>#include<cstdio>#include<math.h>using namespace std;int main(){ int t=0,i,j,n,k; while(~scanf("%d%d",&n,&k)) { printf("Case %d: ",++t); if(k==1 && n%2) puts("Bob"); else if(n==2*k+1) printf("Alice %d\n",k); else puts("Alice 1"); } return 0;}
- hdu 4387 Stone Game
- hdu 4387 Stone Game
- HDU 4387 Stone Game 博弈
- hdu 1729 Stone Game
- Hdu 1729 Stone Game
- HDU 1729 Stone Game
- HDU 1729 Stone Game
- hdu 1729 Stone Game
- Hdu Stone Game ( 博弈论 )
- hdu Stone Game SG函数
- hdu A Simple Stone Game
- HDU 1729 Stone Game (SG函数)
- HDU 1729 Stone Game 【博弈论,SG函数】
- hdu 2486 A simple stone game
- hdu 1729 Stone Game(SG函数)
- sg函数 hdu 1729 Stone Game
- hdu 1729 Stone Game 【博弈-找规律】
- HDU 4388 Stone Game II(博弈)
- java 技术技能 面试
- 自定义标签
- mysql中查看表结构
- 爆笑找茬等小笑话
- 虚拟机启动出错
- hdu 4387 Stone Game
- CUDA编程指南阅读笔记(六)
- BCSUtils备份
- lingo解题报告内容解释
- ORA-38760: 此数据库实例无法启用闪回数据库:guarantee restore point 导致
- Codeforces Round #196 (Div. 2)
- hdu 2688
- 数据结构之---KMP算法讲解
- 为什么要用 Bootstrap