#S2026F8. [CSP-S 2026 模拟一] 交替巡线(alternate)
[CSP-S 2026 模拟一] 交替巡线(alternate)
题目描述
一张通信网是一棵有 个节点的无向树,节点编号 到 。树的每条边都安装着一盏灯,颜色为 0 或 1;改变该边灯的颜色一次需要支付 单位费用。
现有 次互相独立的巡线检查,每次给出两个节点 。
沿着树上从 到 的简单路径依次观察经过的边灯。为完成本次检查,需要使路径上相邻两条边的颜色不同。允许任意选择第一条边的颜色;不在该路径上的边无需改变。
请分别计算每次检查所需的最少改灯费用。每次检查结束后,所有灯恢复为最初的颜色;一次检查中的修改不会影响其它检查。
如果路径没有边()或只有一条边,答案为 。
输入格式
第一行两个整数 。
接下来 行,每行四个整数 ,表示一条树边、初始颜色和改色费用。
接下来 行,每行两个整数 ,表示一次巡线检查。
输出格式
输出 行,每行一个整数,表示最少改灯费用。
样例 1
4 4
1 2 0 4
2 3 0 7
2 4 1 3
1 3
1 4
3 4
1 1
4
0
0
0
样例解释
路径 上的两盏灯均为 0,只需修改其中较便宜的第一盏灯,费用 。路径 和 已经交替,无需修改。
数据范围与部分分
保证 ,,,;输入保证前 条边构成一棵树。
| 子任务 | 分值 | 特殊限制 | 测试点 |
|---|---|---|---|
| 1 | 20 | 1–4 | |
| 2 | 原树是一条链 | 5–8 | |
| 3 | 所有改色费用 | 9–12 | |
| 4 | 40 | 无额外限制 | 13–20 |
树上的路径必须使用原图的初始颜色计算;若错误地将各查询累积修改,答案会不正确。