随笔分类 - 树形dp
摘要:Choosing Two Paths 搞不懂为啥我要写换根啊, 这么麻烦。。
阅读全文
摘要:Leaf Partition 考虑树形dp dp[ u ][ 0 ] 表示 u 这棵子树处理完, 不能向上延伸的方案数。 dp[ u ][ 1 ] 表示 u 这棵子树处理完, 必须向上延伸的方案数。 dp[ u ][ 2 ] 表示 u 这棵子树处理完, 可以向上延伸的方案数。 然后转移的时候细心一点
阅读全文
摘要:HDU - 5815 感觉要是值域范围是1000以内, 感觉还是能写出来的。。 考虑dp[ i ][ j ]表示从 1 到 i 路径上的值是 j , i 这棵子树的最大贡献值。 然后可以发现 j 这维可以离散化, 离散化之后最优值不会变, 然后dp一遍就好了。
阅读全文
摘要:HDU - 5854 二分答案之后, 设答案值为v, x为小于等于v的边的数量, y为大于v的边的数量, 列出方程 x > (x + y) / k == (k - 1) * x - y > 0, 感觉有点像线性规划的样子。 然后用树形dp去check, 判合不合法的时候可以优化成一个R, 但是不优化
阅读全文
摘要:HDU - 5378 dp[ i ][ j ]表示 i 这棵子树填满, 有 j 个满足条件的方案数。 转移的时候组合数乘一乘。
阅读全文
摘要:Fedor Runs for President 考虑 一棵基环树, 只有对应在基环上同一点的点对是一条路径。我们目标是使一条路经的数目尽可能少。 dp[ u ] 表示从下延伸上来的一条最优链。 但是在当前这个点 u 作为交汇点的时候, 需要从它儿子中选两个 合起来得到最优值, 这个需要用斜率去优化
阅读全文
摘要:Shaass the Great 枚举删掉的边, 我们考虑如何将两个团连起来最优, 显然这是两个独立的问题, 两个团内分别选一个最优点连起来就好了。 用每条边的贡献取计算答案, 然后用树形dp去计算连在那个点最优, 考虑改变连接点改变所带来影响就不难写出dp了。 嗯嗯恩。。 好像又写麻烦了, 直接找
阅读全文
摘要:Birthday 没想到平方和能在树上dp出来的。。。 知道了如何转移, 那么就很好写了。。。
阅读全文
摘要:Bear and Destroying Subtrees 我们先考虑没有修改的到从根开始的最长期望深度。 dp[ i ][ j ] 表示 i 这棵子树所有的边有一半概率存在的情况下, 最长深度为 j 的概率。 我们只用考虑50层就够了, 因为概率随长度比边长成指数级减少。 这样的话,处理出一个 dp
阅读全文
摘要:dp[ i ][ j ] 表示在 i 这棵子树中, 距离 i 最远点的距离为 j 的方案数。 转移应该挺显然的把, 记一下mxd[ u ] 表示 u 这颗子树的最大深度, 然后两个for套在一起复杂度就对了。
阅读全文
摘要:Zublicanes and Mumocrates dp[ i ][ j ][ k ] 表示 以 i 为根的子树, 占领 i 的 是 j 并且第一个人占了 i 子树的 k 个叶子节点的最小值。 然后随便d 1 d 就好了。
阅读全文
摘要:The Chocolate Spree 对拍拍了半天才知道哪里写错了。。 dp[ i ][ j ][ k ]表示在 i 这棵子树中有 j 条链, 是否有链延伸上来。
阅读全文
摘要:小G砍树 dfs两次, dp出每个点作为最后一个点的方案数。
阅读全文
摘要:Treeland Tour 离散化之后, 每个节点维护上升链和下降链, 感觉复杂度有点高, 为啥跑这么快。。
阅读全文
摘要:Karen and Supermarket 感觉就是很普通的树形dp。 dp[ i ][ 0 ][ u ]表示在 i 这棵子树中选择 u 个且 i 不用优惠券的最小花费。 dp[ i ][ 1 ][ u ]表示在 i 这棵子树中选择 u 个且 i 用优惠券的最小花费。 注意这个转移总的合起来是O(n
阅读全文
摘要:E - Preorder Test 思路:想到二分答案了之后就不难啦, 对于每个答案用树形dp取check, 如果二分的值是val, dp[ i ]表示 i 这棵子树答案不低于val的可以访问的 最多节点, 第二次dfs求出以每个点为根的答案。
阅读全文
摘要:思路:如果只有一棵树这个问题很好解决,dp一次,然后再dfs一次往下压求答案就好啦,带环的话,考虑到环上的点不是 很多,可以暴力处理出环上的信息,然后最后一次dfs往下压求答案就好啦。细节比较多。
阅读全文
摘要:E - Demiurges Play Again 感觉这种类型的dp以前没遇到过。。。 不是很好想。。 dp[u] 表示的是以u为子树进行游戏得到的值是第几大的。
阅读全文
摘要:D - Road Improvemen 思路:0没有逆元!!!! 不能直接除,要求前缀积和后缀积!!!
阅读全文
摘要:思路:随便想想就能想出来啦把。。。 卡了我一个vector。。。
阅读全文