题目名称 3793. [POI 2012]Salaries
输入输出 salaries.in/out
难度等级 ★★★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 33
题目来源 GravatarBenjamin 于2022-11-18加入
开放分组 全部用户
提交状态
分类标签
DFS 贪心
分享题解
通过:1, 提交:4, 通过率:25%
Gravataryrtiop 100 2.689 s 49.95 MiB C++
GravatarLfc_HeSn 96 5.023 s 51.51 MiB C++
GravatarLfc_HeSn 96 5.437 s 51.51 MiB C++
GravatarLfc_HeSn 3 5.745 s 51.51 MiB C++
本题关联比赛
4043级NOIP2022欢乐赛7th
关于 Salaries 的近10条评论(全部评论)

3793. [POI 2012]Salaries

★★★☆   输入文件:salaries.in   输出文件:salaries.out   简单对比
时间限制:1 s   内存限制:128 MiB

【题目描述】

有一个 $n$ 个点的有根树,每个点的权值分别为 $1 \ldots n$,且大于其儿子的权值。其中一部分点的权值是已知的,且每个权值已知的点的父亲权值也一定已知。

请根据已知信息推算权值未知点的权值。

【输入格式】

第一行一个整数 $n$,表示点的个数。

接下来 $n$ 行每行两个整数 $p_i, z_i$,其中 $p_i$ 表示结点 $i$ 的父亲,$z_i$ 表示结点 $i$ 的权值。如果 $z_i = 0$,则该点权值未知,否则该点权值为 $z_i$。

【输出格式】

输出 $n$ 行,每行一个整数,表示 $i$ 点的权值。

如果该点权值已知或可以推算出来,输出该点权值,否则输出 $0$。

【样例输入1】



10
2 2
2 10
1 0
2 9
2 5
4 0
6 0
6 0
5 0
5 0 

【样例输出1】

2
10
1
9
5
8
0
0
0
0

【样例输入输出2】

点击下载样例2

【数据规模与约定】

对于 其中$17$ 组数据, $1 \le n \le 50$;

对于 另外$\ 3$ 组数据, $1 \le n \le 150$;

对于 另外$\ 5$ 组数据, $1 \le n \le 10^4$;

对于 $100\%$ 的数据, $1 \le n \le 10^6 ,1 \le p_i \le n,0 \le z_i \le n$。