有一天,AwD 到森林里游玩,回来之后跟 zhangzy 说,我发现好多棵会动的树耶!zhangzy 说,这有什么好稀奇的,我用手指头就能维护每棵树的形态。
于是又过了几天 AwD 到沙漠里游玩,回来之后跟 zhangzy 说,我发现好多棵会动的仙人掌耶!zhangzy 说,这有什么好稀奇的,我用脚丫子就能维护每棵仙人掌的形态。
而后又再过了几天AwD到篮球场上游玩,回来之后跟zhangzy说,我发现好多棵会动的 k-FC 耶!zhangzy 说,这有什么好稀奇的,我什么都不做就能维护每棵 k-FC 的形态了。
于是 AwD 很郁闷,他向你求助,请帮帮他吧。
如果一个无向连通图的任意一条边最多属于 $k$ 个简单环,我们就称之为 k-FC。
如果一个无向图的每个连通块都是个 k-FC,且不存在自环,我们就称之为篮球场。
为了证明你确实能够维护 k-FC,我们给你 $n$ 个结点,从 $1$ 到 $n$ 标号。
初始时没有任何边,且每个结点 $i$ 有个非负权值 $w_i$。每次进行如下操作之一:
link v u w:在结点 $v,u$ 间连一条权值为 $w$ 的边。
- $1 \leq v, u\leq n$ 且 $w$ 为正整数,保证操作后图依然是个篮球场。
- 在进行该操作后输出
ok。
cut v u w:在结点 $v,u$ 间删去一条权值为 $w$ 的边。
- $1 \leq v, u \leq n$ 且 $w$ 为正整数,保证操作后图依然是个篮球场。
- 在进行该操作后输出
ok(如果有多条权值为 $w$ 的边删去任意一条)。
query1 v u:查询结点 $v$ 到结点 $u$ 的最短路信息。
- $1 \leq v, u \leq n$。
- 输出两个用空格隔开的整数 $\min, \sigma$,分别代表最短路上点权的最小值、和。
- 如果没有路到达则 $\min=-1, \sigma=-1$。
- 如果最短路不唯一 $\min=-2, \sigma=-2$。
query2 v u:查询以结点 $v$ 为根,子k-FC $u$ 的信息。
- $1 \leq v, u \leq n$。
- 以结点 $v$ 为根,子k-FC $u$ 的定义是,删掉 $v$ 到 $u$ 之间的所有简单路径上的边之后,$u$ 所在的连通块。
- 输出两个用空格隔开的整数 $\min,\sigma$,分别代表子 k-FC $u$ 中点权的最小值、和。
- 如果 $v,u$ 不连通则 $\min=-1, \sigma=-1$。
add1 v u d:把结点 $v$ 到结点 $u$ 的最短路上的每一个结点的权值都加上 $d$。
- $1 \leq v, u \leq n$ 且 $d$ 为正整数。
- 如果有路可达且最短路唯一,则输出
ok;
- 否则操作非法,不进行操作并输出
failed。
add2 v u d:把以结点 $v$ 为根,子k-FC $u$ 的每一个结点的权值都加上 $d$。
- $1 \leq v, u \leq n$ 且 $d$ 为正整数。
- 如果 $v,u$ 在同一个连通块里,则输出
ok;
- 否则操作非法,不进行操作并输出
failed。
~~提示:众所周知,k-FC 是 k-Factors Cactus 的简称。~~