ACM——树论
微风袭来
这个作者很懒,什么都没留下…
展开
-
[IOI]2010 Race(dsu on tree)
题目 给出一棵树,问长度为K的简单路径,最少经过的边数,假如没有这种路径则输出-1,否则输出边数 题解 用map来存x节点下子树上的每个节点距根节点的长度 这道题其实我也不太确定,交了十几次,随便改改小细节,答案都不一样,唉,过题不怕不ac,就怕ac了还是不懂为啥ac的 代码 #include<bits/stdc++.h> #include<tr1/unordered_map&g...原创 2020-04-22 23:34:12 · 161 阅读 · 0 评论 -
CF 570D(dsu on tree)
题目 n个以1为根的树,每个节点上有一个字母,m次询问,问以x为根的子树中深度为y的节点,用这些节点上的字母来组成一个单词,假如这个字母可以是回文串,则输出Yes,否则输出No 题解 用二进制数存储x节点子树中单词的奇偶,奇为1,偶为0,这是一个26位的二进制数,只要这个二进制数为0或者只有一位为1,那就可以形成回文串 其他的就是dsu on tree 的方法,先dfs一遍,建立每个节点的深度,再...原创 2020-04-22 09:25:04 · 187 阅读 · 0 评论 -
CF 600E(dsu on tree)
题目 给出以1为根的一棵树,树的每个节点上都有编号,求每个节点所在子树中最多的数字是哪个?(有相同数目的,就把编号相加输出) 题解 dsu on tree的模板题 先用树链剖分的方法,标记出重儿子,然后遍历一遍整棵树,将重儿子的编号数组保留,轻链上的儿子的编号数组用完后就清楚,每个节点的结果为遍历轻儿子后的结果直接加上重儿子数组后的结果,如果不保留重儿子的数组,那么每个点的结果需要遍历他的所有儿子...原创 2020-04-21 20:42:23 · 165 阅读 · 0 评论