[FROM WOJ]#3841 双调路径

#3841 双调路径

题面
如今的道路收费发展很快。道路的密度越来越大,因此选择最佳路径是很现实的问题。城市的道路是双向的,每条道路有固定的旅行时间以及需要支付的费用。
路径是连续经过的道路组成的。总时间是各条道路旅行时间的和,总费用是各条道路所支付费用的总和。一条路径越快,或者费用越低,该路径就越好。严格地说,如果一条路径比别的路径更快,而且不需要支付更多费用,它就比较好。反过来也如此理解。如果没有一条路径比某路径更好,则该路径被称为最小路径。
这样的最小的路径有可能不止一条,或者根本不存在路径。
问题:读入网络,计算最小路径的总数。费用时间都相同的两条最小路径只算作一条。你只要输出不同种类的最小路径数即可。

输入
第一行有四个整数,城市总数 n,道路总数 m,起点和终点城市 s,e
接下来的 m 行每行描述了一条道路的信息,包括四个整数,两个端点 p,r ,费用 c,以及时间 t ;
两个城市之间可能有多条路径连接。

输出
仅一个数,表示最小路径的总数。

样例输入
4 5 1 4
2 1 2 1
3 4 3 1
2 3 1 2
3 1 1 4
2 4 2 4

样例输出
2

提示
样例说明
在这里插入图片描述
从 1 到 4 有 4 条路径。为 1→2→4 (费用为 4 ,时间为 5),1→3→4 (费用为 4 ,时间为 5),1→2→3→4 (费用为 6 ,时间为 4),1→3→2→4 (费用为 4,时间为 10)。
1→3→4 和 1→2→4 比 1→3→2→4 更好。有两种最佳路径:费用为 4 ,时间为 5 (1→2→4 和 1→3→4 )和 费用为 6 ,时间为 4 (1→2→3→4 )
1≤n≤100,0≤m≤300,1≤s,e,p,r≤n,0≤c,t≤1001≤n≤100,0≤m≤300,1≤s,e,p,r≤n,0≤c,t≤100,
保证 s≠e,p≠r。

SOL
首先需要读懂题——有两个域,每条边两个参数ci,ti分别属于两个域,求S到T的路径上,t比所有c更小的路径还要小,或c比所有t更小的路径还要小 的路径总数。
读懂题之后就好办了——跑最短路,只是变成了二维的。
d i s [ i ] [ j ] dis[i][j] dis[i][j]表示由S到i点费用为j的路径的最小时间,然后跑SPFA。
对于每一个 d i s [ T ] [ i ] dis[T][i] dis[T][i],如果有 d i s [ T ] [ i ] &lt; d i s [ T ] [ j ] ( j &lt; i ) dis[T][i]&lt;dis[T][j](j&lt;i) dis[T][i]<dis[T][

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值