Tyvj 1577 泥泞的道路 (最小生成树+LCA)

博客内容涉及一个在线算法挑战,游客在公园中从一个景点到另一个景点,希望经过的道路泥泞程度最大值最小。给定景点数量、道路数量、道路的泥泞程度以及多个游客的询问,任务是设计算法找到每个询问的最佳路径。题目要求在限定时间内处理大量查询,并给出详细输入输出格式及测试样例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 qs(l,r:longint);
var i,j,m,p:longint;
begin 
i:=l; j:=r;
m:=w[(l+r)di
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值