#1433. 魔力之都

魔力之都

魔力之都

题目描述

本题的故事发生在魔力之都,在这里我们将为你介绍一些必要的设定。

魔力之都可以抽象成一个nn个节点、mm条边的无向连通图(节点的编号从11nn)。我们依次用llaa描述一条边的长度、海拔。

作为季风气候的代表城市,魔力之都时常有雨水相伴,因此道路积水总是不可避免的。由于整个城市的排水系统连通,因此有积水的边一定是海拔相对最低的一些边。

我们用水位线来描述降雨的程度,它的意义是:所有海拔不超过水位线的边都是有积水的。

YazidYazid是一名来自魔力之都的OlerOler,刚参加完ION2018ION2018的他将踏上归程,回到他温暖的家。

YazidYazid的家恰好在魔力之都的11号节点。对于接下来QQ天,每一天YazidYazid都会告诉你他的出发点vv,以及当天的水位线pp

每一天,YazidYazid在出发点都拥有一辆车。这辆车由于一些故障不能经过有积水的边。

YazidYazid可以在任意节点下车,这样接下来他就可以步行经过有积水的边。但车会被留在他下车的节点并不会再被使用。

需要特殊说明的是,第二天车会被重置,这意味着:

  • 车会在新的出发点被准备好。
  • YazidYazid不能利用之前在某处停放的车。

YazidYazid非常讨厌在雨天步行,因此他希望在完成回家这一目标的同时,最小化他步行经过的边的总长度。请你帮助YazidYazid进行计算。

本题的部分测试点将强制在线,具体细节请见"输入格式"和"子任务"。

输入格式

单个测试点中包含多组数据。输入的第一行为一个非负整数TT,表示数据的组数。

接下来依次描述每组数据,对于每组数据:

  • 第一行22个非负整数nnmm,分别表示节点数、边数。
  • 接下来mm行,每行44个正整数uuvvllaa,描述一条连接节点uuvv的、长度为ll、海拔为aa的边。在这里,我们保证1u,vn1 \leq u,v \leq n
  • 接下来一行33个非负数QQKKSS,其中:
    • QQ表示总天数,
    • K{0,1}K \in \{0,1\}是一个会在下面被用到的系数,
    • SS表示的是可能的最高水位线。
  • 接下来QQ行依次描述每天的状况。每行22个整数v0v_{0}p0p_{0}描述一天:
    • 这一天的出发节点为v=(v0+K×lastans1)modn+1v = (v_{0} + K \times lastans - 1) \bmod n + 1
    • 这一天的水位线为p=(p0+K×lastans)mod(S+1)p = (p_{0} + K \times lastans) \bmod (S + 1)
    • 其中lastanslastans表示上一天的答案(最小步行总路程)。特别地,我们规定第11天时lastans=0lastans = 0
    • 在这里,我们保证1v0n1 \leq v_{0} \leq n0p0S0 \leq p_{0} \leq S

对于输入中的每一行,如果该行包含多个数,则用单个空格将它们隔开。

输出格式

依次输出各组数据的答案。对于每组数据:

  • 输出QQ行每行一个整数,依次表示每天的最小步行总路程。

数据范围与提示

所有测试点均保证T3T \leq 3,所有测试点中的所有数据均满足如下限制:

  • n2×105n \leq 2 \times 10^{5}m4×105m \leq 4 \times 10^{5}Q4×105Q \leq 4 \times 10^{5}K{0,1}K \in \{0,1\}1S1091 \leq S \leq 10^{9}
  • 对于所有边:l104l \leq 10^{4}a109a \leq 10^{9}
  • 任意两点之间都直接或间接通过边相连。

为了方便你快速理解,我们在表格中使用了一些简单易懂的表述。在此,我们对这些内容作形式化的说明:

  • 图形态:对于表格中该项为"一棵树"或"一条链"的测试点,保证m=n1m = n - 1。除此之外,这两类测试点分别满足如下限制:
    1. 一棵树:保证输入的图是一棵树,即保证边不会构成回路。
    2. 一条链:保证所有边满足u+1=vu + 1 = v
  • 海拔:对于表格中该项为"一种"的测试点,保证对于所有边有a=1a = 1
  • 强制在线:对于表格中该项为"是"的测试点,保证K=1K = 1;如果该项为"否",则有K=0K = 0
  • 对于所有测试点,如果上述对应项为"不保证",则对该项内容不作任何保证。

子任务

nn mm Q=Q= 测试点 图形态 海拔 强制在线
1\leq 1 0\leq 0 00 11 不保证 一种
6\leq 6 10\leq 10 1010 22
50\leq 50 150\leq 150 100100 33
100\leq 100 300\leq 300 200200 44
1500\leq 1500 4000\leq 4000 20002000 55
200000\leq 200000 400000\leq 400000 100000100000 66
1500\leq 1500 =n1= n - 1 20002000 77 一条链 不保证
88
99
200000\leq 200000 100000100000 1010 一棵树
1111
400000\leq 400000 1212 不保证
1313
1414
1500\leq 1500 4000\leq 4000 20002000 1515
1616
200000\leq 200000 400000\leq 400000 100000100000 1717
1818
400000400000 1919
2020

为了优化你的阅读体验,我们在表格中把测试点的编号放在了中间,请注意这一点。

样例

1
4 3
1 2 50 1
2 3 100 2
3 4 50 1
5 0 2
3 0
2 1
4 1
3 1
3 2
0
50
200
50
150

说明

第一天没有降水,YazidYazid可以坐车直接回到家中。

第二天、第三天、第四天的积水情况相同,均为连接1122号节点的边、连接3344号点的边有积水。

对于第二天,YazidYazid22号点出发坐车只能去往33号节点,对回家没有帮助。因此YazidYazid只能纯靠徒步回家。

对于第三天,从44号节点出发的唯一一条边是有积水的,车也就变得无用了。YazidYazid只能纯靠徒步回家。

对于第四天,YazidYazid可以坐车先到达22号节点,再步行回家。

第五天所有的边都积水了,因此YazidYazid只能纯靠徒步回家。

1
5 5
1 2 1 2
2 3 1 2
4 3 1 2
5 3 1 2
1 5 2 1
4 1 3
5 1
5 2
2 0
4 0
0
2
3
1

说明

本组数据强制在线。

第一天的答案是00,因此第二天的v=(5+01)mod5+1=5v=(5+0-1)\bmod 5+1=5p=(2+0)mod(3+1)=2p=(2+0)\bmod (3+1)=2

第二天的答案是22,因此第三天的v=(2+21)mod5+1=4v=(2+2-1)\bmod 5+1=4p=(0+2)mod(3+1)=2p=(0+2)\bmod (3+1)=2

第三天的答案是33,因此第四天的v=(4+31)mod5+1=2v=(4+3-1)\bmod 5+1=2p=(0+3)mod(3+1)=3p=(0+3)\bmod (3+1)=3

见return3.in
见return3.ans
见return4.in
见return4.ans
见return5.in
见return5.ans