1 条题解
-
0
题解
思路
对一组树,令 表示路径 的最长回文子序列长度。记 为从 走向 的第一步, 为从 走向 的第一步。
做法
删除回文子序列左端未选的字符,可得到 ;删除右端未选的字符,可得到 。若 字符相同,还可以同时选择两个端点,得到 。因此
$$f(u,v)=\max\bigl(f(x,v),f(u,y),[s_u=s_v](2+f(x,y))\bigr).$$按路径长度从短到长计算即可。长度为一个顶点时答案为 ;相邻端点相同时答案为 ,否则为 。用每个点作为根遍历一次,可以预处理任意有序点对间的距离与第一步。所有 的最大值就是答案。
子任务一枚举每条路径的所有子序列。子任务二中每条路径本身都是回文串,答案等于树直径包含的顶点数。
复杂度
每组时间复杂度 ,空间复杂度 ;所有测试组的 之和不超过 。
- 1
信息
- ID
- 1349
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 0
- 上传者