随笔分类 -  动态规划-树形DP

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

You're powerful!