
虚树
C202044zxy
这个作者很懒,什么都没留下…
展开
-
CF1073G Yet Another LCP Problem
一、题目点此看题二、解法先对原串的反串建后缀自动机,然后两个后缀的lcplcplcp就是它们在自动机上的lcalcalca长度。然后就可以在后缀自动机dpdpdp,设sa[u]sa[u]sa[u]为uuu子树内AAA集合元素个数,sb[u]sb[u]sb[u]意义差不多,那么答案就可以这样算:(sa[u]−sa[v])∗sb[v]∗len[u](sa[u]-sa[v])*sb[v]*le...原创 2020-02-08 12:29:23 · 241 阅读 · 0 评论 -
“百家姓”研究
一、题目题目描述给定一棵nnn个点的树,每个点有一个姓氏(不多于555个字符),有mmm个问题,每次问两个姓氏距离的最大值,如果没有最大值,输出−1-1−1,否则输出最大值。数据范围1≤n,m≤1051\leq n,m\leq10^51≤n,m≤105二、解法首先这个最大距离是跟直径有关系的,我们考虑求出每一个姓氏的直径,最大值一定存在于AAA姓氏两个直径点的和BBB姓氏两个直径点的四...原创 2019-12-06 21:40:27 · 216 阅读 · 0 评论 -
[HNOI2014]世界树
一、题目点此看题二、解法这道题一看就是虚树,我们先把虚树建出来,可惜这道题难点并不在此。设dp[u]dp[u]dp[u]表示离uuu最近的关键点,我们可以用pairpairpair表示dpdpdp,距离为第一关键字,编号为第二关键字,就可以直接用大于符号比较了,这个dpdpdp就跑两遍,比较简单。难点在于统计答案,我们先把离uuu最近的关键点的答案加上uuu实际子树的大小,这里分类讨论一...原创 2019-12-06 20:25:18 · 212 阅读 · 0 评论 -
Kingdom and its Cities
一、题目点此看题二、解法设dp[u]dp[u]dp[u]为解决以uuu为根子树中的关键点不能两两联通的最小花费,由于更新的需要,我们要打上一个标记表示该子树中的关键点还能不能通向外面,我们不需要将它放进dpdpdp中,因为把问题留给父亲解决一定是最优的,这种延迟的思想在很多题目中均有体现,我们尝试分类讨论转移:uuu是关键点,我们先对dp[v]dp[v]dp[v]求和,这时候判断一下(u...原创 2019-12-06 14:39:09 · 229 阅读 · 0 评论 -
[HEOI2014]大工程
一、题目点此看题二、解法这道题设计三个子问题,我们逐个用dpdpdp解决。代价和,考虑每条边的贡献,反应到点上,设sum[u]sum[u]sum[u]为子树uuu内关键点个之和,所以每条边的贡献为sum[u]×(k−sum[u])sum[u]\times (k-sum[u])sum[u]×(k−sum[u])(此处边权为1),然后贡献求即可。最小路径,定义dp[u][0/1]dp[u]...原创 2019-12-05 20:21:09 · 234 阅读 · 0 评论 -
[SDOI2011]消耗战
一、题目点此看题二、解法很容易看出来原创 2019-12-05 17:30:33 · 227 阅读 · 0 评论