上一页 1 ··· 60 61 62 63 64 65 66 67 68 ··· 83 下一页
摘要: 嘟嘟嘟 一看完题我就知道是树形dp,状态都想出来了:dp[i][j]表示以 i 为根节点的子树,选了 j 个用户时的最大利润。然后我就卡住了……直到看题解的那一刻…… 题解说:树形背包。于是我就知道为什么gg了:我总共就做了一道树形背包。 思路大概是这样的:对于一个节点u,枚举他的儿子v,然后dfs 阅读全文
posted @ 2018-09-13 20:09 mrclr 阅读(171) 评论(0) 推荐(0)
摘要: 嘟嘟嘟 这好像是一种树上背包。 我们令dp[i][j] 表示在 i 所在的子树中(包括节点 i)分离出一个大小为 j 的子树最少需割多少条边。 那么转移方程就是 dp[u][j] = min(dp[u][j], dp[u][j - k] + dp[v][k] - 1) (v是u的一个儿子) 理解起来 阅读全文
posted @ 2018-09-13 17:42 mrclr 阅读(170) 评论(0) 推荐(0)
摘要: 嘟嘟嘟 题说的很明白,就是求树的重心。 我们首先dfs一遍维护每一个点的子树大小,然后再dfs一遍,对于一个点u,选择子树中size[v]最小的那个和n - size[u]比较,取最大作为删除u后的答案Max[u]。 然后再O(n)遍历一遍取min(Max[i]). 写代码的时候两次dfs可以合并。 阅读全文
posted @ 2018-09-13 15:50 mrclr 阅读(177) 评论(0) 推荐(0)
摘要: 嘟嘟嘟 树形dp。 首先一个很常规的想法就是如果u到v有一条边,那么建立cost(u, v) = 0, cost(v, u) = 1的两条边. 可以两遍dfs。 先任选一个点作为根节点,第一遍从下往上dfs,维护节点u到他的所有子节点的距离,很容易得出dis[u] = ∑dis[v] + cost( 阅读全文
posted @ 2018-09-13 14:43 mrclr 阅读(213) 评论(0) 推荐(0)
摘要: 嘟嘟嘟 题目大意就是对于一个m面的骰子,回答这么两个问题: 1.求连续扔n次都是同一数字的期望次数。 2.求连续扔n次每一次数字都不相同的期望次数。 对于期望dp特别菜的我来说,这道题已经算是很难了。反正是抠了一天…… 我们先看第一问。 令fi表示连续 i 次数字都相同的期望,那么要考虑他能转化到什 阅读全文
posted @ 2018-09-13 13:46 mrclr 阅读(159) 评论(0) 推荐(0)
摘要: 嘟嘟嘟 虽然分类是期望dp,不过好像是最水的 因为在陆地上的时间和概率是固定的,所以只用考虑过河的期望时间。 对于一条河p, l, v,p好像没什么用……不管了,首先期望时间我觉得可以这么算:期望时间=期望距离 / 速度,又因为船停的位置和方向都是等概率随机的,所以期望的距离就是平均距离,很显然最长 阅读全文
posted @ 2018-09-12 15:54 mrclr 阅读(197) 评论(0) 推荐(0)
摘要: 嘟嘟嘟 这道题很显然是dp,刚开始我是设dp[i][j]表示到第 i 个时间段,申请了 j 个课程耗费的体力值的总和的最小期望值,但是想了半天也没有推出转移方程,现在想想觉得应该是无法表示他第 i 时刻在哪一个教室。 于是我们加一维dp[i][j][0/1]表示第 i 时刻我们是否申请了换教室。那么 阅读全文
posted @ 2018-09-12 14:55 mrclr 阅读(167) 评论(0) 推荐(0)
摘要: 嘟嘟嘟 看这种图上摆放方案的题,以及 m <= 10,就一定能猜到是状压dp。 考虑当前第 i 行放一个3 * 2的方块,只会受到 i - 1行和 i - 2行的影响, 所以设:0:表示上两行都空闲。 1:i - 2行有块,i - 1行空闲。 2:i - 1行有块,因此 i - 2行的状态就不用管了 阅读全文
posted @ 2018-09-11 19:04 mrclr 阅读(212) 评论(0) 推荐(0)
摘要: 嘟嘟嘟 看来状压dp入门题都是这个难度的。 令dp[i][j]表示到了第 i 行,状态为 j 时的方案数。 然后枚举这一行和上一行的状态,则dp[i][j] += dp[i - 1][k]。 预处理合法的种植状态。 还有,判断种植状态符不符合草地状态只能一位一位比较,因为位运算不能辨别两个数的二进制 阅读全文
posted @ 2018-09-10 20:29 mrclr 阅读(134) 评论(0) 推荐(0)
摘要: 嘟嘟嘟 做完[NOI2001]炮兵阵地这道题,顿时觉得此题好水~~15分钟AC 令dp[i][j][k]表示到第 i 行放了 j 个国王,该行状态为 k 时的方案数。然后dp的时候第一层循环枚举 i,第二层 j,如果j 合法的话,再枚举第三层 i - 1行的状态 k,然后如果k合法且 j 和k不冲突 阅读全文
posted @ 2018-09-10 19:43 mrclr 阅读(152) 评论(0) 推荐(0)
上一页 1 ··· 60 61 62 63 64 65 66 67 68 ··· 83 下一页