从无编程比赛经验,程序设计艺术与方法作业所迫,采用方法十分普通,还请进来的大佬莫要笑话
原题
- 描述
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