P1577 泥泞的道路
时间: 1000ms / 空间: 131072KiB / Java类名: Main
描述
公园中有n个景点,编号1~n,并由m条双向道路相连。由于昨天下雨,导致公园中的马路泥泞不堪,每条道路都有一个泥泞程度w。现有Q个游客依次向你求助,想从景点X走到景点Y,他希望找到一条道路,使得经过道路泥泞程度的最大值尽量小。你能设计一个在线算法,帮他们找到方案吗?
输入格式
第一行两个正整数n和m,表示景点数和道路数。
随后m行每行三个正整数x、y、w,用来描述一条道路,它连接x和y景点并且泥泞程度为w。
随后Q行,每行四个参数p1、p2、q1、q2,含义如下:
设数列Si表示你求得的第i个询问的结果(s0=1),则对于第i个询问:
X=(S[i-1]+p1)*p2 mod n + 1;
Y=(s[i-1]+q1)*q2 mod n + 1;
输出格式
请对于每个询问,输出结果,即Si。
测试样例1
输入
4 4
1 2 2
2 3 1
1 3 3
3 4 5
2
3 1 0 2
1 1 2 1
输出
2
5
说明:第一个询问是{x=1,y=3},第二个询问是{x=4,y=1}。
备注
对于30%的数据,n<=1000,m<=3000,Q<=1000;
对于100%的数据,n<=100000,m<=300000,Q<=100000;
对于100%的数据,0<=p1、p2、q1、q2
program mys;
type ab=^node;
node=record
ends,data:longint;
next:ab;
end;
var i,j,k,m,n,q,t:longint;
x1,y1,p1,p2,q1,q2:int64;
f,x,y,s,d,w:array[0..400000]of longint;
g,dis:array[0..100000,0..20]of longint;
p:array[0..300000]of ab;
procedure