原文:poj3585(树形dp,换根法)

换根法思想为, ,随便找一个点作为根进行dp, ,再以原来点为根进行dp,此次dp,设最优解为 f x ,那么f root d root ,这是显而易见的 然后再通过找d son 与f x 之间关系进行dp 比如本道题,若f x 已知最优解,那么把son换成根,f x 的最优解即为 d v f x min d v ,w x,v 类似点分治求重心,通过与父亲值做减法,求出树上除v子树外最优值 amp ...

2018-08-04 16:03 1 904 推荐指数:

查看详情

DP

dp的通:1.第一次扫描时,任选一个点为,在“有树”上执行一次树形DP,也就在回溯时发生的,自底向上的状态转移。 2.第二次扫描时,从刚才选出的出发,对整棵树执行一次dfs,在每次递归前进行自上向下的推导,计算出后的解。 例题POJ3585 Accumulation ...

Wed Oct 30 23:53:00 CST 2019 2 918
浅谈DP

浅谈DP 本篇随笔浅谈一下算法竞赛中的DPDP概念 DP其实是树形DP的一种延伸技巧或者说是方法。 它的使用范围是,对树上的每个点跑树形DP。这样的话,不用DP一点一点跑的复杂度就是\(O(n^2)\),必炸。那么DP应运而生。简单来讲,就是我们会通过推理 ...

Sat Sep 05 03:39:00 CST 2020 0 608
DP学习笔记

今天打 \(Atcoder\) 时遇到了一道 \(DP\) ,发现自己不太会,学习了一下。 一般来说,这类题在做树形 \(DP\) 时没有固定的,可以枚举然后做 \(N\) 次树形 \(DP\) ,但复杂度是不太优的,于是有了 \(DP\),一般通过两次对整棵树的 \(dfs ...

Mon Oct 11 17:46:00 CST 2021 10 97
poj 2486 apple tree 树形DP 不懂的一定把你讲懂

很典型的树形DP,自己也理解了好久,感觉自己好水哦。。。。。。。。。。。。。。。。。。。。。。。。。 所以讲得清楚一点,以后回忆起来也快 题意:一颗树,n个点(1-n),n-1条边,每个点上有一个权值,求从1出发,走V步,最多能遍历到的权值 我们把背包的思想用到这里来,做的步数相当于背包 ...

Mon Jan 09 16:11:00 CST 2012 3 3023
[算法学习] dp

dp 一般来说,我们做题的树都是默认 \(1\) 为的。但是有些题目需要计算以每个节点为时的内容。 朴素的暴力:以每个点 \(u\) 作为 \(root\) 暴力dfs下去,复杂度\(O(n^2)\); 正确的做法:dp,复杂度\(O(n)\)。 执行步骤 第一次扫描,先 ...

Tue Apr 07 01:31:00 CST 2020 3 651
AtCoder abc160 F - Distributing Integers【dp

传送门 题意 给一颗树,指定一个点,从这个点开始染色,每次只能在已染色点旁边染色,问从每个点开始染色分别能产生多少种染色序列。 题解 这个问题其实就是问一颗有树的拓扑序列个数。 其实我们知道不是树的有向无环图的拓扑序列个数是个np问题,但是树的拓扑序列个数是一个可解的问题。\(n ...

Mon Mar 30 18:01:00 CST 2020 4 362
poj上的dp专题

更新中... http://poj.org/problem?id=1037 dp[i][j][0]表示序列长度为i,以j开始并且前两位下降的合法序列数目; dp[i][j][1]表示序列长度为i, 以j开始并且前两位上升的合法序列数目; 于是我们可以得到递推方程式:dp[i][j ...

Sun Feb 16 23:37:00 CST 2014 1 3572
POJ 2282 数位DP

链接: http://poj.org/problem?id=2282 题意: 给你一个区间a,b,问a到b之间每个数字出现了多少次 题解: 看过算法设计与分析的人都很熟悉这道题,毕竟是课后练习的第一道,感觉用数位dp比模拟更好理解啊 dp[pos][sta]表示到从最低位到第pos位 ...

Fri May 05 18:20:00 CST 2017 12 176
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM