[Ctsc2012]Circuit
给定一棵包含 个节点的树,节点编号为 到 。树上的每条边均为一个阻值为 的电阻。此外,每个度数为 的节点,即叶子节点,都额外通过一个阻值为 的电阻连接到电位为 的地。
初始时,电路中没有任何电流源,因此所有节点的电位均为 。接下来依次执行 个操作,操作分为以下 类:
- 接入一个理想电流源,使 安培的电流从节点 流出,并流入节点 。电流源接入后将永久存在,多次接入的电流源会同时起作用,其效果累加。
- 询问某个节点当前相对于地的电位。
请对每次询问输出对应节点此时的电位。
输入格式
第一行输入两个整数 ,分别表示树的节点数和操作数。
接下来 行,每行输入两个整数 ,表示节点 与节点 之间有一条边,边上恰好包含一个阻值为 的电阻。
接下来输入 个命令,每个命令为以下两种格式之一:
C:接入一个理想电流源,使 安培的电流从节点 流出,并流入节点 。其中 ,,,且 为整数。Q:询问节点 当前相对于地的电位。其中 。
输入中的所有数字和命令字母之间均以任意空白字符分隔,包括空格或换行。因此,一个命令可能与其他输入内容位于同一行。
输出格式
对于每个 Q 命令,按照命令出现的顺序输出一个实数,表示对应节点此时相对于地的电位,单位为伏特。每个结果占一行。
输出的小数位数不限。若输出结果与标准答案的绝对误差不超过 ,则视为正确。
样例输入
4 3
1 2
2 3
2 4 Q 2
C 2 4 5 Q 2
样例输出
0.0000000000
-1.6666666667
样例解释
树中包含边 、 和 ,叶子节点为 。
执行第一个命令 Q 时,电路中尚未接入任何电流源,因此节点 的电位为 。
随后执行命令 C ,接入一个使 电流从节点 流出并流入节点 的理想电流源。此时再次询问节点 ,其电位为 。
数据范围
- ;
- ,且 ;
- ;
- ,且 为整数;
- 树中最长链的长度不超过 。
来源与许可
本题为 CTSC 2012 试题「Circuit」,题面与测试数据整理自 BZOJ。
样例 1
输入
4 3
1 2
2 3
2 4 Q 2
C 2 4 5 Q 2
输出
0.0000000000
-1.6666666667