首页 > 试题广场 >

树的最大权值

[编程题]树的最大权值
  • 热度指数:89 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小红定义一棵树的权值为:
若一条简单路径 u\rightarrow v 满足 s_u+...+s_v 是一个回文串。在所有这样的路径中,路径的长度的最大值是是该树的权值。
现在小红给定一棵结点总数为 n 的树和 'a','b','c',...,'z'每种字母的个数,保证所有个数之和恰好等于 n
你需要将每个字母填入一个树的结点,使得该树的权值最大,输出树的最大权值。

输入描述:
第一行输入一个长度为26的数组,表示每个字母的个数,保证总和为 n

第二行输入一个整数 n(1\leq n\leq 10^5),表示树的结点总数。

接下来 n-1 行,每行输入两个整数 u,v(1\leq u,v\leq n,u\neq v),表示树的一条边。


输出描述:
输出一个整数,表示树的最大权值。
示例1

输入

1 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
5
1 2
2 3
3 4
4 5

输出

3
头像 丨阿伟丨
发表于 2025-09-12 15:41:19
题目链接 REAL744 树的最大权值 题目描述 小红定义一棵树的权值为:在所有节点字符构成回文串的简单路径中,最长路径的长度(节点数)。 给定一棵 个节点的树,以及 'a' 到 'z' 每种字母的可用数量(总和恰好为 )。你需要将每个字母填入一个树节点,使得该树的权值最大。输出这个最大权值。 思 展开全文
头像 美丽的布莱恩想要offer
发表于 2025-06-29 10:27:23
import java.util.LinkedList; import java.util.List; import java.util.ArrayList; import java.util.Queue; import java.util.Scanner; // 注意类名必须为 Main, 不要 展开全文