- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
一、编程题
1、道路(2024.3八级)
N个以1...N
标号的城市通过单向的道路相连:。每条道路包含两个参数:道路的长度和需要为
该路付的通行费(以金币的数目来表示)
BobandAlice过去住在城市
1.在注意到Alice在他们过去喜欢玩的纸牌游戏中作弊后,Bob和她分手了,并且决
定搬到城市N。他希望能够尽可能快的到那,但是他囊中羞涩。我们希望能够帮助
Bob找到从1到N最短的路径,前提是他能够付的起通行费。
时间限制:1000
内存限制:65536
输入
第一行包含一个整数K,0=K=10000,
代表Bob能够在他路上花费的最大的金币数。第二行包含整数N,2=N=100,
指城市的数目。第三行包含整数R,1=R=10000,指路的数目.
接下来的R行,每行具体指定几个整数S,D,L和
T来说明关于道路的一些情况,这些整数之间通过空格间隔:Sis道路起始城市,1
=S=NDis道路终点城市,1=D=NLis道路长度,1=L=100Tis通行费
(以金币数量形式度量),0=T=100注意不同的道路可能有相同的起点和终点。
输出
输入结果应该只包括一行,即从城市1到城市N所需要的最小的路径长度(花费不
能超过K个金币)。如果这样的路径不存在,结果应该输出-1。
样例输入
5
6
7
1223
2433
3424
1341
4621
3520
5432
样例输出
11
参考答案:对于给定的输入,首先读取Bob能够在他路上花费的最大的金币数K,
城市的数量N和道路的数量R。然后,根据输入的R条道路信息,建立从城市1到城
市N的最短路径图。由于每条道路都是单向的,因此可以使用Dijkstra算法来找到最
短路径。在Dijkstra算法中,我们需要维护一个距离数组,记录从起点到每个顶点
的最短距离。初始时,将起点到起点的距离设为0,其他顶点的距离设为无穷大。
然后,每次从未被访问过的顶点中选取距离最小的顶点,更新其邻居的距离。重复
这个过程,直到找到从城市1到城市N的最短路径。最后,输出最短路径的长度。
如果这样的路径不存在,输出-1。
解析:【喵呜刷题小喵解析】:
该题目要求找到从城市1到城市N的最短路径,并且要求Bob能够付得起通行费。因
此,我们需要建立一个最短路径图,并使用Dijkstra算法来找到最短路径。在输入
中,第一行包含一个整数K,表示Bob能够在他路上花费的最大的金币数。第二行
包含整数N,表示城市的数量。第三行包含整数R,表示道路的数量。接下来的R
行,每行具体指定几个整数S、D、L和T,表示道路的起点、终点、长度和通行费
。
为了解决这个问题,我们可以使用Dijkstra算法来找到最短路径。在Dijkstra算法中
,我们需要维护一个距离数组,记录从起点到每个顶点的最短距离。初始时,将起
点到起点的距离设为0,其他顶点的距离设为无穷大。然后,每次从未被访问过的
顶点中选取距离最小的顶点,更新其邻居的距离。重复这个过程,直到找到从城市
1到城市N的最短路径。
在算法的实现中,我们需要使用一个优先队列来存储待访问的顶点,以及一个数组
来记录每个顶点的最短距离。每次从未被访问过的顶点中选取距离最小的顶点,将
其标记为已访问,并更新其邻居的距离。重复这个过程,直到找到从城市1到城市
N的最短路径。
最后,我们需要检查是否存在从城市1到城市N的最短路径。如果存在,输出最短
路径的长度;否则,输出-1。
需要注意的是,由于每条道路都是单向的,因此在建立最短路径图时,我们需要考
虑道路的方向。另外,不同的道路可能有相同的起点和终点,因此在建立最短路径
图时,我们需要考虑重复边的情况。
2、Freda的越野跑(2024.3八级)
Freda报名参加了学校的越野跑。越野跑共有N人参加,在一条笔直的道路上进行。
这N个人在起点处站成一列,相邻两个人之间保持一定的间距。比赛开始后,这N
个人同时沿着道路向相同的方向跑去。换句话说,这N个人可以看作x轴上的N个点
,在比赛开始后,它们同时向x轴正方向移动。
假设越野跑的距离足够远,这N个人的速度各不相同且保持匀速运动,那么会有多
少对参赛者之间发生“赶超”的事件呢?
时间限制:1000
内存限制:262144
输入
第一行1个整数N。第二行为N
个非负整数,按从前到后的顺序给出每个人的跑步速度。
对于50%的数
原创力文档


文档评论(0)