社区讨论
求助一道站外题
学术版参与者 3已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lo8tcmv3
- 此快照首次捕获于
- 2023/10/28 00:14 2 年前
- 此快照最后确认于
- 2023/10/28 00:14 2 年前
CPP
五彩树(tree)
【题目描述】
企鹅豆豆有一颗五彩斑斓的树,每一个节点上有一种颜色 Ci。一对节点的缤纷值
定义为这两个节点之间的路径上的不同的颜色数。一个节点的绚丽值就是它和所有点
的缤纷值的和。现在企鹅豆豆想要知道每个点的绚丽值是多少?
【输入格式】
从文件 tree.in 中读入数据。
第一行一个整数 N, 代表树的节点个数;
接下来一行有 N 个数,第 i 个数代表每个节点的颜色值 Ci。
接下来 N - 1 行,每行两个数字 u; v,表示 u 和 v 之间有一条边。
【输出格式】
输出到文件 tree.out 中。
输出 N 行,每行一个数。第 i 行表示第 i 个节点的绚丽值。
【样例 1 输入】
5
1 2 3 2 3
1 2
2 3
2 4
1 5
【样例 1 输出】
10
9
11
9
12
【样例 1 解释】
对于第一个点,它和 12345 号点之间的缤纷值分别为 12322。所以他的绚丽值
为 1 + 2 + 3 + 2 + 2 = 10。
题解上说是先考虑链,再放到树上分块做,但是蒟蒻太菜了想不出来,求dalao帮忙
回复
共 5 条回复,欢迎继续交流。
正在加载回复...