#L3078. 「2019 集训队互测 Day 4」基础圆方树练习题
「2019 集训队互测 Day 4」基础圆方树练习题
题目描述
有一天,AwD 到森林里游玩,回来之后跟 zhangzy 说,我发现好多棵会动的树耶!zhangzy 说,这有什么好稀奇的,我用手指头就能维护每棵树的形态。
于是又过了几天 AwD 到沙漠里游玩,回来之后跟 zhangzy 说,我发现好多棵会动的仙人掌耶!zhangzy 说,这有什么好稀奇的,我用脚丫子就能维护每棵仙人掌的形态。
而后又再过了几天AwD到篮球场上游玩,回来之后跟zhangzy说,我发现好多棵会动的 k-FC 耶!zhangzy 说,这有什么好稀奇的,我什么都不做就能维护每棵 k-FC 的形态了。
于是 AwD 很郁闷,他向你求助,请帮帮他吧。
定义
- 如果一个无向连通图的任意一条边最多属于 个简单环,我们就称之为 k-FC。
- 如果一个无向图的每个连通块都是个 k-FC,且不存在自环,我们就称之为 篮球场。
问题描述
给你 个结点,从 到 标号。初始时没有任何边,且每个结点 有个非负权值 。
每次进行如下操作之一:
-
link v u w:在结点 间连一条权值为 的边。- 且 为正整数
- 保证操作后图依然是个篮球场
- 输出
ok
-
cut v u w:在结点 间删去一条权值为 的边。- 且 为正整数
- 保证操作后图依然是个篮球场
- 输出
ok(如果有多条权值为 的边删去任意一条)
-
query1 v u:查询结点 到结点 的最短路信息。- 输出两个用空格隔开的整数 ,分别代表最短路上点权的最小值、和
- 如果没有路到达则
- 如果最短路不唯一
-
query2 v u:查询以结点 为根,子k-FC 的信息。- 以结点 为根,子k-FC 的定义是:删掉 到 之间的所有简单路径上的边之后, 所在的连通块
- 输出两个用空格隔开的整数 ,分别代表子 k-FC 中点权的最小值、和
- 如果 不连通则
-
add1 v u d:把结点 到结点 的最短路上的每一个结点的权值都加上 。- 且 为正整数
- 如果有路可达且最短路唯一,则输出
ok - 否则操作非法,不进行操作并输出
failed
-
add2 v u d:把以结点 为根,子k-FC 的每一个结点的权值都加上 。- 且 为正整数
- 如果 在同一个连通块里,则输出
ok - 否则操作非法,不进行操作并输出
failed
提示:众所周知,k-FC 是 k-Factors Cactus 的简称。
输入格式
第一行一个整数 表示测试集编号。
第二行三个用空格隔开的正整数 表示一共有 个结点, 个操作,每条边最多属于 个简单环。
接下来一行 个正整数,第 个正整数为 。
接下来 行,每行代表一个操作。
输出格式
对于每个操作,输出相应的结果。
样例
输入:
0
11 23 4
10 5 11 7 8 14 30 3 16 20 19
link 1 2 5
link 2 3 3
link 3 4 7
link 4 5 8
link 2 6 10
link 6 7 15
link 4 7 3
link 6 8 9
link 6 8 6
link 7 9 12
link 9 11 10
link 7 10 4
link 9 10 8
query1 6 11
query1 2 10
query2 8 7
add1 8 5 100
query1 1 7
query2 8 7
add2 11 7 1000
query1 8 3
add2 3 2 2333
query1 1 5
输出:
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
-2 -2
5 73
16 85
ok
5 263
16 185
ok
1005 4233
ok
1011 9907
数据范围与提示
一共 18 个测试集:
| 分数 | 测试集编号 | 的范围 | 特殊性质 |
|---|---|---|---|
| 6 | 1 | AB | |
| 2 | AC | ||
| 3 | A | ||
| 5 | 4 | B | |
| 5 | C | ||
| 6 | |||
| 6 | 7 | AB | |
| 8 | AC | ||
| 9 | A | ||
| 5 | 10 | B | |
| 11 | C | ||
| 12 | |||
| 6 | 13 | AB | |
| 14 | AC | ||
| 7 | 15 | A | |
| 5 | 16 | B | |
| 17 | C | ||
| 18 |
特殊性质:
- A:link 与 cut 在其他操作之前
- B:没有操作 query2、操作 add1 与操作 add2
- C:没有操作 query2 与操作 add2
数据范围:
- link 和 cut 操作中的 满足
- 初始的 不超过
- 所有 add1 和 add2 操作中的 之和不超过