随笔分类 - 动态规划-树形DP
摘要:"题目链接" $O(n^2)$的$DP$很容易想,$f[u][i]$表示在$u$的子树中距离$u$为$i$的点的个数,则$f[u][i]=\sum f[v][i 1]$ 长链剖分。 $O(1)$继承重儿子的信息,再暴力合并其他轻儿子的信息,时间复杂度是线性的。 继承重儿子用指针实现,非常巧妙。 cp
阅读全文
摘要:"题目链接" 看到代价和价值这两个关键词,肯定是首先要想到背包的。 但是图中并没有说这是棵树,所以先要$Tarjan$缩点,然后就是选课了,跑一遍树形背包就好了。 注意:缩点后应该是一个森林,应该用一个虚点连接所有根。 cpp include include include using namesp
阅读全文
摘要:"题目链接" 考试时暴搜50分。。。其实看到“单词”,“前缀”这种字眼时就要想到$Trie$的,哎,我太蒻了。 以一个虚点为根,建一棵$Trie$,然后$dfs$, 以当前点为根的答案就是$Ans_u=(\prod_{\text{v是u的子树}}Ans_v)+\text{有单词以这个点结尾 ? 1
阅读全文


浙公网安备 33010602011771号