POJ 2068 Nim#双人dp博弈】的更多相关文章

http://poj.org/problem?id=2068 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ][(<<)+];//dp[i][j]表示轮到第i个人取时,剩j个石头 ]; int DFS(int pos,int remain) { ) return dp[pos][remain];//记忆化…
题目大意: 有2n个人,从0开始编号,按编号奇偶分为两队,循环轮流取一堆有m个石子的石堆,偶数队先手,每个人至少取1个,至多取w[i]个,取走最后一个石子的队伍输.问偶数队是否能赢. 分析: 题目数据不大很容易就可以联想到DP博弈,设dp[i][j]表示轮到第i个人,还有j个石子的情况下他所属队伍是否能赢. 那么如果存在一个x,使第i个人取了x个石子后第(i+1)%2n个人无论如何都败,那么他就可以赢:若不存在则输.即是: dp[i][j]=(dp[(i+1)%2n][j-1]&dp[(i+1)…
Nim POJ - 2068 题目大意:多组数据,两人轮流操作,n轮一循环,给出总石子数和这n轮每次两人能取的石子上限(下限为1).取到最后一颗者输. /* f[i][j]表示在第i轮中一共有j个石子,先行者是否必胜 由于是取到最后一个的人输,那么如果一个石子都没有,先行者必胜,则f[i][0]初始化为1 */ #include<iostream> #include<cstdio> #include<cstring> #define maxn 10010 using n…
Nim Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 1403   Accepted: 791 Description Let's play a traditional game Nim. You and I are seated across a table and we have a hundred stones on the table (we know the number of stones exactly).…
[题目链接] http://poj.org/problem?id=2068 [题目大意] 给出两队人,交叉放置围成一圈,每个人能取的石子数有个上限,各不相同 轮流取石头,取到最后一块石头的队伍算输,问哪个队伍能赢 [题解] 用dp[i][j]记录第i个人取石头时候还有j个石头的状态, 显然j==0时候为必胜态,我们对每个状态搜索后继状态,如果能导向必败态则为必胜态, 否则必败,记忆化搜索即可. [代码] #include <cstdio> #include <cstring> us…
Nim Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 1501   Accepted: 845 Description Let's play a traditional game Nim. You and I are seated across a table and we have a hundred stones on the table (we know the number of stones exactly).…
思路:dp[i][j]:第i个人时还剩j个石头. 当j为0时,有必胜为1: 后继中有必败态的为必胜态!!记忆化搜索下就可以了! 代码如下: #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<vector> #include<cstring> #define inf 1e9 using namespace std; ][],n…
题目大意:尼姆博弈,求先手必胜的情况数 题目思路:判断 ans=(a[1]^a[2]--^a[n]),求ans^a[i] < a[i]的个数. #include<iostream> #include<algorithm> #include<cstring> #include<vector> #include<stdio.h> #include<stdlib.h> #include<queue> #include<…
1421 秋静叶&秋穣子   题目描述 Description 在幻想乡,秋姐妹是掌管秋天的神明,作为红叶之神的姐姐静叶和作为丰收之神的妹妹穰子.如果把红叶和果实联系在一 起,自然会想到烤红薯.烤红薯需要很多的叶子,才能把红薯烤得很香,所以秋姐妹决定比比谁能够收集到最多的红叶.静叶将红叶分成了N堆(编号1..N), 并且规定了它们的选取顺序,刚好形成一颗有向树.在游戏过程中,两人从根节点开始,轮流取走红叶,当一个人取走节点i的红叶后,另一个人只能从节点i的儿 子节点中选取一个.当取到某个叶子时游…
/** 2017 ACM/ICPC Asia Regional Shenyang Online 解题报告 题目:hdu6199 gems gems gems 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6199 题意:Alice和Bob从左到右取数字,一开始Alice可以取1个或者2个.之后当前者可以取得数字个数为k或者k+1个. k为上一个人选的数字个数.如果当前者选不到k个或者k+1个,那么游戏结束. 两个人都用最科学的方法取数字.问Alice的…