test20190504 行走
行走(walk.cpp/c/pas) 题目描述 “我有个愿望,我希望走到你身边。” 这是个奇异的世界,世界上的 n-1 条路联结起来形成一棵树,每条路有一个对应的权值 ci。 现在我会给出 q 组询问或操作。 每次询问我会从一个 x 点走到 y 点,初始在 x 点我会有一个数字 v,然后每走过一条权值为 c 的边,我的 v 就会变成 \(\lfloor \frac vc \rfloor\) ,问最后到 y 时 v 变成了什么。 每次修改我会修改一条边的权值,保证修改后的权值小于等于原来的权值且不会小于 1。 每组询问或操作的格式如下: 询问:1 x y v 表示从 x 走到 y,一开始的数字为 v。 操作:2 p c 表示将第 p 条边的边权修改为 c 输入 第一行两个整数 n 和 q 表示点个数和询问与操作个数 接下来 n-1 行每行三个整数 u,v,c 表示 u 与 v 之间有一条边权为 c 的边 接下来 q 行每行第一个数 type 如果 type=1 那么接下来三个数 x,y,v 表示一组询问 如果 type=2 那么接下来两个数 p,c 表示一组操作 输出 对于每组询问输出一个数表示最后的答案 样例输入 1 6 6 1 2 1 1 3 7 1 4 4 2 5 5 2 6 2 1 4 6 17 2 3 2 1 4 6 17 1 5 5 20 2 4 1 1 5 1 3