![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
博弈论-----------------------
Toooooocold
这个作者很懒,什么都没留下…
展开
-
HDU 5996 dingyeye loves stone
阶梯博弈,即奇数堆的Nim游戏。 #include using namespace std; const int MAXN = 1e5+5; vectorint> G[MAXN]; int a[MAXN]; int sum = 0; void dfs(int fa, int u, int cnt) { if(cnt%2) sum ^= a[u]; for(auto v:原创 2017-01-21 14:14:44 · 197 阅读 · 0 评论 -
Codeforces 768E Game of Stones
NIM游戏改编,每堆石头同一种操作不能超过两次。 可以用SG[i][2^i-1]推出所有状态,复杂度是O(n*n*2^n)。 所以用记忆化搜索,当第一维状态为num时,第二维2^(num-1)前的所有1都可以去掉,因为那些点不会再被取到了。 代码: #include using namespace std; typedef long long ll; typedef pair P原创 2017-02-22 15:36:33 · 545 阅读 · 0 评论 -
UVALive 5882 Racing Car Trail
http://www.cnblogs.com/jffifa/archive/2011/12/17/2291069.html 二分图博弈: 1.博弈者人数为两人,双方轮流进行决策。 2.博弈状态(对应点)可分为两类(状态空间可分为两个集合),对应二分图两边(X集和Y集)。任意合法的决策(对应边)使状态从一类跳转到另一类。(正是由于这个性质使得问题可以用二分图描述) 3.不可以转移至已访问原创 2017-06-05 00:45:47 · 405 阅读 · 0 评论 -
HDU 6199 gems gems gems
Problem:给你n个不同价值的宝石,排成一排,两个人轮流拿,若前者拿了k个,后者只能拿k或k+1个,第一个人最开始只能拿1个或2个,他要使两人之差最大,第二个人要使两人之差最小,两个人都是最优的拿法,问其结果。Idea: DP。原创 2017-09-13 17:00:56 · 319 阅读 · 0 评论