
博弈
ITCharge
高效率编程,慢节奏生活。
展开
-
HDU1760 A New Tetris Game【DFS】【博弈】
题目大意:给你一个N*M的矩阵棋盘。数字0代表该位置可用,数字1代表该位置不可以。Lele和姐姐在这个棋盘上下棋,每次在棋盘上放一个大小为2*2的正方形,棋子间不能相互叠加。两个人轮流放,每次都按最优策略放正方形。轮到谁没有地方放置棋子了,就算谁输。若每次都是Lele先放,那么问题来了:Lele是否一定能赢姐姐呢。思路:博弈中的必胜态:当前所能到达的状态能到达一个必败态,则当前状态为必胜态。博弈中的必败态:若当前状态到达的所有状态都是必胜态,则当前状态为必败态。这道题和简单的取石子游戏差不原创 2015-02-11 22:30:39 · 1231 阅读 · 0 评论 -
HDU1079 POJ1082 Calendar Game【博弈】
题目大意:有一个日期游戏,胜利时间是2001年11月4日。玩家可以从当前日期移动到下一天,也可以移动到下一个月的今天,比如从2000年3月3日可以移动到2000年3月4日,也可以移动到2000年4月3日。当然,移动到下一个月的当前日期的前提是那一天是存在的,比如说2001年1月31日,只能移动到2001年2月1日,而不能移动到2001年2月31日,因为那天不存在。问:给你一个日期,玩家是否能依靠上述规则,从当前日期移动到2001年11月4日从而赢得比赛。思路:这是一道博弈题,2001年11月原创 2015-04-08 10:53:34 · 864 阅读 · 0 评论 -
HDU1848 Fibonacci again and again【博弈】
题目大意:二个人玩取石子游戏,一共有三堆石子,分别为m、n、p个。两个人轮流取石子,每次可以任选一堆石子,然后取斐波那契数列中的f(n)个。每次都使用最优策略,先取完的人获胜。问:先手的人会赢还厚后手的人会赢?思路:这是一道博弈题。Fibo[] = {1,2,3,5,8,13,21,…}。根据题意每次只能取fibo[i]个。则:1.如果只有1堆m个,而m是某个fibo[i],则m是必胜点。m = 1,2,3,5,8,13,21,…是必胜点。可以看出来0,4就是必败点。如果从m中取走k个(k原创 2015-04-08 09:33:27 · 852 阅读 · 0 评论 -
HDU1847 Good Luck in CET-4 Everybody!【博弈】
题目大意:有N张牌,两个人轮流抓,每次抓的牌数只能是2的幂次(2^0、2^1、2^2、…)。最后抓完牌的人获胜。Kiki和Cici都是足够聪明的学生,Kiki先抓,输出赢得比赛的人。思路:找必败点,很容易知道当N==3时是一个必败点,因为只能取1或是2,而剩下的牌肯定能被对手取完,所以3是一个必败点。4能取1把场面变为3,所以4是必胜点,5能取2把场面变为3。而6的话,要么取完剩下2的幂次让对手赢,或者留下机会让对手把场面变为3(必败点)。同理3的倍数一样,不能一次性把牌取完,最后要么自己取原创 2015-04-25 22:39:50 · 774 阅读 · 0 评论