博弈
文章平均质量分 76
ok_again
起步级菜鸟
展开
-
HDU 3660 Alice and Bob's Trip
树形dp,这道题如果选G++的话,只输入都会超时。我是C++ 1900ms + 飘过的。。。但是输入优化后就快了很多了,1100ms左右。dfs按层次求最值就行了,差不多也算是博弈吧,到bob取的时候要选尽量大的分支(满足条件L和R之间的情况下),反之要alice选尽量小的分支。然后一遍dfs就可以了,时间复杂度为O(n)。原创 2013-09-30 17:50:27 · 1372 阅读 · 0 评论 -
hdu 4753 Fishhead’s Little Game
状态压缩dp解博弈问题(记忆化搜索)。比赛的时候最后才开始做这道题,而且当时不知道为什么一直犯一些很2B的问题,导致没能ac,晚上看了看原先的代码,改了一下就MLE了。。。我原先是开的dp[1 << 24] 的记忆化数组,果断超内存了,然后仔细看了一下题目,发现题目中的n >= 12,也就是说用到的状态不超过2^12个,于是把满足情况的状态hash到2^12以内的数组就可以了。原创 2013-09-22 00:48:29 · 1521 阅读 · 0 评论 -
hdu 4778 Gems Fight!
dp+博弈。首先我们发现,背包竟然只有21个。。。这样的话我们就可以用状态压缩表示当前状态都还剩下哪些背包了。然后对于当前状态,有两个转移方向: 1、枚举背包,如果当前背包对cooker有影响的话,我们就会得到魔法石tmp个,这样的话下一步就还是当前人拿,这样的话就是dp[sta] = max(tmp + dp[sta ^ (1 2、如果当前背包对co原创 2013-11-09 17:43:55 · 2955 阅读 · 4 评论