| 题目名称 | 3793. [POI 2012]Salaries | 
|---|---|
| 输入输出 | salaries.in/out | 
| 难度等级 | ★★★☆ | 
| 时间限制 | 1000 ms (1 s) | 
| 内存限制 | 128 MiB | 
| 测试数据 | 33 | 
| 题目来源 | 
 | 
| 开放分组 | 全部用户 | 
| 提交状态 | |
| 分类标签 | |
| 分享题解 | 
| 通过:2, 提交:6, 通过率:33.33% | ||||
| 
 | 
100 | 2.689 s | 49.95 MiB | C++ | 
| 
 | 
100 | 3.035 s | 34.16 MiB | C++ | 
| 
 | 
96 | 5.023 s | 51.51 MiB | C++ | 
| 
 | 
96 | 5.437 s | 51.51 MiB | C++ | 
| 
 | 
82 | 10.948 s | 34.04 MiB | C++ | 
| 
 | 
3 | 5.745 s | 51.51 MiB | C++ | 
| 本题关联比赛 | |||
| 4043级NOIP2022欢乐赛7th | |||
| 关于 Salaries 的近10条评论(全部评论) | ||||
|---|---|---|---|---|
| 
 
好题,没有想象的那么简单 
2025-08-11 09:51
1楼
 
 | ||||
有一个 $n$ 个点的有根树,每个点的权值分别为 $1 \ldots n$,且大于其儿子的权值。其中一部分点的权值是已知的,且每个权值已知的点的父亲权值也一定已知。
请根据已知信息推算权值未知点的权值。
第一行一个整数 $n$,表示点的个数。
接下来 $n$ 行每行两个整数 $p_i, z_i$,其中 $p_i$ 表示结点 $i$ 的父亲,$z_i$ 表示结点 $i$ 的权值。如果 $z_i = 0$,则该点权值未知,否则该点权值为 $z_i$。
输出 $n$ 行,每行一个整数,表示 $i$ 点的权值。
如果该点权值已知或可以推算出来,输出该点权值,否则输出 $0$。
 
10 2 2 2 10 1 0 2 9 2 5 4 0 6 0 6 0 5 0 5 0
2 10 1 9 5 8 0 0 0 0
点击下载样例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$。