解题思路
本题需要在一棵树上分配 26 种颜色的彩灯,希望最大化“和谐度”(即最长优美路径的节点数)。分配方案可以任意安排,因此问题可以拆解为两个独立的上界:
- 树上最长简单路径的限制:任何优美路径必然是一条树上的简单路径,其长度不可能超过树的直径(最长简单路径的节点数)。记树的直径节点数为 D,则和谐度一定满足 ≤D。
- 全局彩灯总数的回文限制:一条路径上的颜色序列为回文,等价于在路径内部每种颜色的数量满足回文条件——偶数长度时所有颜色出现次数均为偶数,奇数长度时至多一个颜色出现奇数次。因此,从全部 n 盏彩灯中能选出的最长回文序列长度 L 为:将所有颜色的偶数部分全部累加,若存在奇数个的颜色则可再额外放置一个作为中心。即L=i=1∑26(ci−(cimod2))+{1,0,若存在某个 ci 为奇数否则
由于树上的任何路径的彩灯集合必定是全集的一个子集,因此和谐度不会超过 L。