飙车(speed)

这篇博客介绍了比特山飙车问题,这是一个关于在树形结构中寻找符合特定速度限制的最短路径的问题。Byteasar希望在不损坏车道的情况下,根据给定的不同车速找到最长的合法路径。文章提供了输入输出格式,样例测试用例,以及使用线段树和并查集等数据结构解决问题的思路。
摘要由CSDN通过智能技术生成

【题目描述】

比特山是比特镇的飙车圣地。在比特山上一共有n个广场,编号依次为1n,这些广场之间通过n1条双向车道直接或间接地连接在一起,形成了一棵树的结构。

因为每条车道的修建时间以及建筑材料都不尽相同,所以可以用两个数字li;ri化地表示一条车道的承受区间,只有当汽车以不小于li且不大于ri的速度经过这条车道时,才不会对路面造成伤害。

Byteasar最近新买了一辆跑车,他想在比特山飙一次车。Byteasar计划选择两个不同的点S;T,然后在它们树上的最短路径上行驶,且不对上面任意一条车道造成伤害。

Byteasar不喜欢改变速度,所以他会告诉你他的车速。为了挑选出最合适的车速,Byteasar一共会向你询问m次。请帮助他找到一条合法的道路,使得路径上经过的车道数尽可能多。

【输入格式】

从文件speed.in中读入数据。

第一行包含两个正整数n;m,表示广场的总数和询问的总数。

接下来n1行,每行四个正整数ui;vi;li;ri,表示一条连接uivi的双向车道,且承受区间为[li;ri]

接下来m行,每行一个整数qi,分别表示每个询问的车速。

【输出格式】

输出到文件speed.out中。

输出m行,每行一个整数,其中第i行输出车速为qi时的最长路径的长度,如果找不到合法的路径则输出0

【样例输入】
53

3224

1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值