hdu Coin Game(11阿里巴巴网络赛)
2011-08-18 18:07
369 查看
题意:给你n个硬币是环状的,编号1-n,只能翻转连续的且不超过k个的硬币。
这题有点像nim问题,第一步翻后环必然断开,但是后面翻转可能将原来一段的分成两段。这就有点难想了,但是有个必胜策略,就是你能将这段分成等长的两段,后面对手怎么翻,你就在另一段怎么翻,这样就可以保证你赢了,这样的话你会发现当你能翻转大于1的硬币时,必能分成两段。现在就是这样了,先手先翻,若不能翻完,则后手分段,能分成两个等长的段就能赢,显然当只能翻转1个的时候要特判,这样就解决了。
代码
这题有点像nim问题,第一步翻后环必然断开,但是后面翻转可能将原来一段的分成两段。这就有点难想了,但是有个必胜策略,就是你能将这段分成等长的两段,后面对手怎么翻,你就在另一段怎么翻,这样就可以保证你赢了,这样的话你会发现当你能翻转大于1的硬币时,必能分成两段。现在就是这样了,先手先翻,若不能翻完,则后手分段,能分成两个等长的段就能赢,显然当只能翻转1个的时候要特判,这样就解决了。
代码
#include<stdio.h> int main() { int n,j,i,k,a,b; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d%d",&a,&b); if(a<=b) printf("Case %d: first\n",i); else if(b==1) { if(a%2) printf("Case %d: first\n",i); else printf("Case %d: second\n",i); } else { printf("Case %d: second\n",i); } } return 0; }
相关文章推荐
- HDU 3951 (博弈) Coin Game
- Coin Game HDU - 3951 (简单博弈)
- hdu 5011 Game(2014 西安网络赛)
- HDU 5456 Matches Puzzle Game 2015沈阳网络赛(记忆化搜索)
- HDU 5011 Game(西安网络赛E题)
- HDU 1564 Play a game(巴什博弈)
- hdu 1564水题Play a game
- HDU 1564 Play a game(博弈)
- [博弈] hdu 5011 Game
- HDU 4155 The Game of 31 (博弈)
- hdu 4753 Fishhead’s Little Game(状压dp)
- hdu 5011 Game
- hdu - 4326 - Game - 概率dp
- hdu 5441 Travel 2015长春网络赛 图论 并查集
- HDU 2844 coin 【多重背包】--暂时还不会全部,待补
- Caocao's Bridges hdu4738 (网络赛 杭州赛区) hdu 4738
- HDU1532 Drainage Ditches 网络流
- 2017沈阳网络赛 1008 HDU 6201 transaction transaction transaction(树形dp)
- HDU-5090- Game with Pearls(贪心)
- hdu 3657 Game【最大权独立点集------最大流最小割Dinic】