bzoj#P1375. [Baltic2002]Bicriterial routing 双调路径

[Baltic2002]Bicriterial routing 双调路径

题目描述

如今的道路收费发展很快。道路的密度越来越大,因此选择最佳路径是很现实的问题。

城市的道路是双向的,每条道路有固定的旅行时间以及需要支付的费用。

路径是连续经过的道路组成的;总时间是各条道路旅行时间的和;总费用是各条道路所支付费用的总和。

一条路径越快,或者费用越低,该路径就越好;严格地说,如果一条路径比别的路径更快,而且不需要支付更多费用,它就比较好。

反过来也如此理解。如果没有一条路径比某路径更好,则该路径被称为最小路径。

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

读入网络,计算最小路径的总数。

特殊的,费用时间都相同的两条最小路径只算作一条。你只要输出不同种类的最小路径数即可。

输入格式

第一行有四个整数,城市总数 nn,道路总数 mm,起点和终点城市 s,es,e

接下来的 mm 行每行描述了一条道路的信息:两个端点 p,rp,r,费用 cc,以及时间 tt

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

输出格式

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

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

样例说明

114444 条路径。为 1241\rightarrow 2\rightarrow 4(费用为 44,时间为 55),1341\rightarrow 3\rightarrow 4(费用为 44,时间为 55),12341\rightarrow 2\rightarrow 3\rightarrow 4(费用为 66,时间为 44),13241\rightarrow 3\rightarrow 2\rightarrow 4(费用为 44,时间为 1010)。

1341\rightarrow 3\rightarrow 41241\rightarrow 2\rightarrow 413241\rightarrow 3\rightarrow 2\rightarrow 4 更好。

有两种最佳路径:费用为 44,时间为 551241\rightarrow 2\rightarrow 41341\rightarrow 3\rightarrow 4)和 费用为 66,时间为 4412341\rightarrow 2\rightarrow 3\rightarrow 4)。

数据规模与约定

对于 100%100\% 的数据,满足如下条件:

  • 1n1001≤n≤1000m3000\leq{m}\leq300
  • 1s,e,p,rn1\leq{s,e,p,r}\leq{n}
  • 0c,t1000\leq{c,t}\leq100
  • ses\neq{e}prp\neq{r}