题目链接:sicily 1214解题思路:
博弈题,用搜索来做。但是,如果用普通的搜索来做的话,是会超时的——复杂度大约是O( n^n ),所以需要采用记忆化搜索的方法(其实差不多就是动态规划了,但是这里是树形DP)。
状态:
用集合S表示现在树的状态,i 表示现在轮到谁进行砍边,dp[ S ][ i ]表示最优值。集合S可以用二进制来表示,即001表示现在还剩下第0条边。
状态转移:
1...
分类:
其他好文 时间:
2015-06-03 21:43:48
阅读次数:
169
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3895看这题感觉好神。SG函数,dp。。。。好像都不行呀。最后去膜拜题解发现记忆化搜索 囧那我就直接上他的做法了。假设每堆石子的数量都大于1那么我们定义操作数b为当前石子总数+当前堆数-1若b为奇...
分类:
其他好文 时间:
2015-06-03 21:26:37
阅读次数:
143
Description小M超级喜欢滑雪~~ 滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当小M滑到坡底,便不得不再次走上坡或者等待升降机来载你。小M想知道滑雪场中最长底的滑坡。滑雪场由一个二维数组给出。数组的每个数字代表点距离水平面的相对距离。下面是一个例子1 2 3 4 5...
分类:
编程语言 时间:
2015-06-03 11:44:21
阅读次数:
181
最短路+记忆化搜索HDU 1142 A Walk Through the Forest链接:http://acm.hdu.edu.cn/showproblem.php?pid=1142题意:找出不同的路径条数,假如jimmy要从A走到B的话满足jimmy从B到家的距离比从A到家的距离短这样我们可以通...
分类:
其他好文 时间:
2015-06-02 23:23:16
阅读次数:
155
分析:两个人都足够聪明,因此每个阶段都拿最大的。dp[sa][ea][sb][eb]分别表示区间1的开始为sa,结束为ea,区间2的开始为sb,结束为eb时能拿到的最大值。之后分别从四个方向上拿,是个搜索的过程。
[cpp] view
plaincopyprint?
#include
using namespace std;
...
分类:
其他好文 时间:
2015-06-02 22:10:58
阅读次数:
164
状态压缩DP,把切割出的面积做状态压缩,统计出某状态下面积和。设f(x,y,S)为在状态为S下在矩形x,y是否存在可能划分出S包含的面积。若S0是S的子集,对矩形x,y横切中竖切,对竖切若f(x,k,S0)且f(x,y-k,S^S0)为真,则为真,对横切同样。然后枚举S的子集即可。可以用记忆化搜索。...
分类:
其他好文 时间:
2015-06-02 14:52:10
阅读次数:
136
这是一个未被验证过正确性的判断有根树同构的哈希函数。可以记忆化搜索或者dfs求得。f(u)表示以u为根的子树的哈希值。size(u)表示以u为根的子树的大小。son(u)表示u的儿子数量。chi表示u的第i个儿子。p为种子。O(n)。typedef unsigned long long ull;#d...
分类:
其他好文 时间:
2015-05-29 23:04:55
阅读次数:
168
http://www.lydsy.com/JudgeOnline/problem.php?id=1048TML了一发#include
#include
#include
#include
#include
#define clr(a,b) memset(a,b,sizeof(a))
const dou...
分类:
其他好文 时间:
2015-05-28 21:37:35
阅读次数:
147
HDU4919 Exclusive or(递推+记忆化搜索+大数)...
分类:
其他好文 时间:
2015-05-28 14:10:57
阅读次数:
269
题目链接:http://poj.org/problem?id=1088思路分析:1>状态定义:状态dp[i][j]表示在位置map[i][j]可以滑雪的最长区域长度;2>状态转移方程:由于由位置[i, j]只能向四个方向移动,所以子问题最多有四个;所以dp[i][j]为其邻域可以滑雪的最大区域长度加...
分类:
其他好文 时间:
2015-05-25 21:53:16
阅读次数:
138