#P7951. [✗✓OI R1] 右方之火
[✗✓OI R1] 右方之火
题目背景
「区区二十亿,区区两千年,根本就不够。」
「本大爷所拥有的力量可比你想象的还多哦。」
你打不过右方之火。
但是为了证明你的想象力很丰富,你要做一道构造题。
题目描述
你有一个 个点 条边的无向连通图,每个点有一个初始权值 以及一个目标权值 。现在你可以对这张图进行这样的操作:
- 选择一个整数 ,需要满足 ;
- 选一条点数为 ,边数为 的链;
- 使得中间点的权值减去 ,另外两个点的权值各加上 。
问是否可以进行若干次操作使得最后每个点的权值都为 。如果可以,你需要输出方案,操作次数不能超过 。
注意 可以为负数。
输入格式
本题有多组测试数据。
第一行一个正整数 ,表示测试数据的数量。
对于每组数据,第一行两个正整数 ,分别表示点数和边数。
接下来两行,每行各 个正整数,表示初始权值 和目标权值 。
接下来 行,每行两个整数 ,表示 号点和 号点之间有一条边,保证图连通,没有自环和重边。
输出格式
对于每组数据,第一行输出一个字符串,若能够从初始权值变为目标权值,输出 Yes
,否则输出 No
。输出 Yes
和 No
的这一行不要有其他奇怪的字符,不然可能会被 checker 判成错误。
第二行输出一个整数 ,表示构造方案共有 步。
接下来 行,每行四个整数 满足 ,,,表示 。
本题采用 Special Judge。如果有多种答案,输出任意一种即可。
3
7 6
8 6 0 6 1 1 10
5 6 2 9 1 2 7
1 2
2 3
3 4
4 5
5 6
6 7
7 6
8 6 0 6 1 0 11
5 6 2 9 1 2 7
1 2
2 3
3 4
4 5
5 6
6 7
7 6
8 6 0 6 1 1 10
5 6 2 9 1 2 6
1 2
2 3
3 4
4 5
5 6
6 7
Yes
5
7 6 5 -3
6 5 4 -5
5 4 3 -7
4 3 2 -6
3 2 1 -3
No
No
2
6 6
10 -3 4 21 -2 11
4 4 8 8 8 9
1 2
2 3
3 4
4 5
5 6
6 1
6 6
10 -3 4 21 -2 11
4 4 8 8 9 8
1 2
2 3
3 4
4 5
5 6
6 1
Yes
6
6 1 2 6
1 2 3 1
2 3 4 3
3 4 5 9
4 5 6 2
5 6 1 5
No
1
6 9
7 5 68 16 2 45
42 11 42 17 14 17
1 3
1 4
1 6
1 5
1 2
2 5
2 3
4 6
5 6
Yes
10
1 4 6 1
1 6 4 -6
2 1 4 -9
1 3 2 -17
5 1 4 25
2 1 6 32
1 6 5 33
4 1 3 39
4 6 5 -46
3 1 6 -99
提示
本题采用多组测试数据,子任务评测。
对于 的数据,满足 ,,,,。
subtask | 特殊性质 | 分数 | |
---|---|---|---|
1 | , | 无 | 10 |
2 | 保证第 条边连接 和 号点 | 5 | |
3 | 保证第 条边连接 和 号点 | ||
4 | 无 | 10 | |
5 | 保证图是一个环 | ||
6 | 无 | ||
7 | 20 | ||
8 | 30 |
温馨提示:对于部分数据点 因此数据比较难造,看到只 WA 了少数几个点并不代表你的算法没有问题,请仔细思考算法的正确性。