双调路径   bic .pas/c/cpp      时间限制:  3S                     100                                      

问题描述

如今的道路收费发展很快。道路的密度越来越大,因此选择最佳路径是很现实的问题。城市的道路是双向的。每条道路有固定的旅行时间以及需要支付的费用。

       路径是连续经过的道路组成的。总时间是各条道路旅行时间的和,总费用是各条道路所支付费用的总和。一条路径越快,或者费用越低,该路径就越好。严格地说,如果一条路径比别的路径更快,而且不需要支付更多费用,它就比较好。反过来也如此理解。如果没有一条路径比某路径更好,则该路径被称为最小路径。

       这样的最小的路径有可能不止一条,或者根本不存在路径。

例子

       下图给出了一个网络,每条路有两个参数:费用和时间。o_bic.bmp

 

       144条路径。1‑2‑4 (fee 4, time 5), 1‑3‑4 (fee 4, time 5), 1‑2‑3‑4 (fee 6, time 4)1‑3‑2‑4 (fee 4, time 10)

      1‑3‑4 1‑2‑4 1‑3‑2‑4更好。有两种最佳路径:fee 4, time 5 (roots 1‑2‑4 and 1‑3‑4) fee 6, time 4 (root 1‑2‑3‑4)

 

问 题

      从文件bic.in中读入网络,计算最小路径的总数。费用时间都相同的两条最小路径只算作一条。你只要输出不同种类的最小路径数即可。

 

输入文件

      文件的第一行有4个整数,城市总数n, 1  £  n  £  100, 道路总数 m, 0  £  m  £  300, 起点和终点城市se, 1  £  se  £  n, ¹  e 。接下来的m行每行描述了一条道路的信息,包括4个整数,两个端点pr,费用c,以及时间t £  pr  £  n, ¹  r, 0  £  c  £  100, 0  £  t  £  100

      两个城市之间可能有多条路径连接。

输出文件

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

样  例

Bic.in

bic.out

Comments

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

该例对应前面的图。

posted on 2009-03-11 14:11 250 阅读(680) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

留言簿(6)

随笔分类

随笔档案

文章档案

相册

搜索

  •  

最新评论