动态dp
y_immortal
蒟蒻蒟蒻
展开
-
洛谷4719 【模板】动态dp 学习笔记(ddp 动态dp)
qwq大概是混乱的一个题。首先,还是从一个比较基础的想法开始想起。如果每次暴力修改的话,那么每次就可以暴力树形dp令dp[x][0/1]dp[x][0/1]dp[x][0/1]表示xxx的子树中,是否选择xxx这个点的最大权独立集。如果这个点不选,那么他的所有儿子都是可以选的。如果这个点选的,那么只能加上他的所有儿子不选的收益。因为收益可能存在负数,所以要特别处理一下void dfs...原创 2019-01-14 21:54:35 · 292 阅读 · 0 评论 -
bzoj4712 洪水(动态dp)
看起来很模板的一个题啊qwq但是我还是wei题目要求的是一个把根节点和所有叶子断开连接的最小花费。还是想一个比较naivenaivenaive的做法我们令dp1[i]dp1[i]dp1[i]表示,在iii的子树内,把叶子全都隔断的最小代价,那么dp1[i]=max(∑dp1[p],val[i])dp1[i]=max(\sum dp1[p],val[i])dp1[i]=max(∑dp1[...原创 2019-01-15 14:31:08 · 196 阅读 · 0 评论 -
洛谷5024 保卫王国 (动态dp)
qwq非正解。但是能跑过。1e5 log方还是很稳的啊首先,考虑最普通的dpdpdp令dp1[x][0]表示不选这个点,dp1[x][1]表示选这个点的最大最小花费dp1[x][0]表示不选这个点,dp1[x][1]表示选这个点的最大最小花费dp1[x][0]表示不选这个点,dp1[x][1]表示选这个点的最大最小花费那么dp1[x][0]=∑dp[p][1]dp1[x][0]=\su...原创 2019-01-21 09:44:52 · 150 阅读 · 0 评论 -
bzoj5210最大连通子块和 (动态dp+卡常好题)
卡了一晚上,经历了被卡空间,被卡T,被卡数组等一堆惨惨的事情之后,终于在各位大爹的帮助下过了这个题qwqqq(全网都没有用矩阵转移的动态dp,让我很慌张)首先,我们先考虑一个比较基础的dpdpdp我们令dp1[i]dp1[i]dp1[i]表示必须选iii的最大连通块的权值是多少。然后令ans1[i]ans1[i]ans1[i]表示iii的子树中的dp1dp1dp1的最大值。那么该怎么计算...原创 2019-01-16 11:40:42 · 333 阅读 · 0 评论