随笔分类 -  动态规划——树形dp

摘要:题意 给定一颗树,求这个树的最大子树的大小,要求这个子树是一个good-tree。 good-tree的定义是:树上每个节点表示一个一维区间,当两个节点的区间有重叠时,两个节点间存在一条边。 题解 不可能画出一个十字形的树,每个方向包含两个节点。 通过分析可以发现,这个子树是这个树的一条链,然后允许 阅读全文
posted @ 2019-11-02 19:46 ckxkexing 阅读(239) 评论(0) 推荐(0)
摘要:link Gym - 102222、2018宁夏邀请赛、2019银川icpc网络预选赛 current: 10 / 13 👌A. Maximum Element In A Stack 👌B. Rolling The Polygon 👌C. Caesar Cipher 👌D. Take You 阅读全文
posted @ 2019-08-31 21:57 ckxkexing 阅读(535) 评论(0) 推荐(0)
摘要:1006 Acesrc and Travel 换根树形DP #include <algorithm> #include <iterator> #include <iostream> #include <cstring> #include <cstdlib> #include <iomanip> #i 阅读全文
posted @ 2019-08-14 18:14 ckxkexing 阅读(316) 评论(0) 推荐(0)
摘要:1002 Blow up the city 支配树的思想,u有多个父节点,直接连向他们的lca #include <algorithm> #include <iterator> #include <iostream> #include <cstring> #include <cstdlib> #in 阅读全文
posted @ 2019-07-29 18:19 ckxkexing 阅读(307) 评论(0) 推荐(0)
摘要:CF1187D. Subarray Sorting 想要把一个数$x$换到前面,$x$一定是小一点的值。由于B串是固定的,A串可调整,我们可以遍历B数组,对于$B_i$,找到对于在A数组的位子$pos$,判断$[1,pos]$中,是不是$A_{pos}$最小,如果是最小,说明可以换到最前面,把$A_ 阅读全文
posted @ 2019-07-01 22:27 ckxkexing 阅读(198) 评论(0) 推荐(0)
摘要:传送门:http://codeforces.com/contest/1153/problem/D 思路: 这道题想了一天,突发奇想,就是维护每个点两个值,第几大和第几小,就可以有传递性了。 #include <bits/stdc++.h> using namespace std; #define f 阅读全文
posted @ 2019-04-23 17:34 ckxkexing 阅读(175) 评论(0) 推荐(0)
摘要:P1273 有线电视网 )逼着自己写DP 题意: 在一棵树上选出最多的叶子节点,使得叶子节点的值 减去 各个叶子节点到根节点的消耗 >= 0; 思路: 树上分组背包DP,设$dp[u][k] $表示 到以u节点为根节点选k个叶子能得到的最大值。则可得到状态转移方程, $dp[u][k] = max( 阅读全文
posted @ 2019-01-17 22:06 ckxkexing 阅读(159) 评论(0) 推荐(0)
摘要:CF EDU 1101D GCD Counting 题意 有一颗树,每个节点有一个值,问树上最长链的长度,要求链上的每个节点的GCD值大于1。 思路 由于每个数的质因子很少,题目的数据200000<2*3*5*7*11*13*17=510510。所以每个节点的质因子个数不多。那么树形DP的时候直接枚 阅读全文
posted @ 2019-01-13 16:52 ckxkexing 阅读(244) 评论(0) 推荐(0)
摘要:传送门:https://www.nowcoder.com/acm/contest/203/B 思路及参考:https://blog.csdn.net/u013534123/article/details/82934820 这篇blog写得非常详细,但是我不会他说的立flag法,就学了其他同学的做法, 阅读全文
posted @ 2018-10-07 23:11 ckxkexing 阅读(203) 评论(0) 推荐(0)