2019安徽省程序设计竞赛 D自驾游 题解

该博客主要解析了2019年安徽省程序设计竞赛中的D自驾游问题,涉及算法、数据结构和图论。博主介绍了如何利用Dijkstra算法解决从1号城市到N号城市(省会)的最少警告次数路径问题,并提供了源代码实现。
摘要由CSDN通过智能技术生成

从无编程比赛经验,程序设计艺术与方法作业所迫,采用方法十分普通,还请进来的大佬莫要笑话

原题

  • 描述
    P 省有 N 个城市,编号分别为 1…N,烦烦家住 1 号城市,N 号城市是省会。P省的交通非常发达,有 M 条有向的高速公路连接这 N 个城市,第 i 条高速公路(1<=i<=M)从城市 ui 连向城市 vi。这天,烦烦想自己开车从家前往省会城市游玩。烦烦是个做事很细致的人,为了有备无患,她决定同时开着 heroMap 和 amap 这两个不同的导航软件来帮助自
    己完成这次旅程。这两个导航软件内部采用了不同的算法,对于第 i 条高速公路(1<=i<=M),heromap 认为通过时间为 Pi 分钟,amap 则认为通过时间为Qi 分钟。这两个导航软件会根据自己的数据来计算从当前位置到目标位置所需
    的最短时间是多少,对于第 i 个城市(1<=i<=N),记 heromap 认为从 i 到 N的最短时间为 hero(i),记 amap 认为 i 到 N 的最短时间为 a(i)。烦烦开车途径某条高速公路(1<=i<=M)时,如果 heromap 认为从 ui 到 N 不应该走这条
    路,即 hero(vi)+Pi>hero(ui),则发出一次警告,同样的,如果 amap 认为从 ui 到 N 不应该走这条路,即 a(vi)+Qi>a(ui),也会发出一次警告。现在烦烦希望自己选择一条路径,使得受到的警告总数最少。请你编程解决这一问题。
  • 输入
    第一行是两个整数 N 和 M
    接下来 M 行,第 i 行有四个整数 ui, vi, Pi, Qi;分别表示第 i 条边的出发点和到达点编号,两个导航软件认为走过这条边所用的时间。
    2 <= N <= 10,000
    1 <= M <= 50,000
    1 <= ui, vi <= N
  • 输出
    输出从 1 走到 N 最少受到多少次警告
  • 样例输入
    5 7
    3 4 7 1
    1 3 2 20
    1 4 17 18
    4 5 25 3
    1 2 10 1
    3 5 4 14
    2 4 6 5
  • 样例输出
    1

题解

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值