43751503:道路和航线

4375   1503:道路和航线

题目描述

原题来自:USACO 2011 Jan. Gold
Farmer John 正在一个新的销售区域对他的牛奶销售方案进行调查。他想把牛奶送到TT 个城镇 ,编号为11TT 。这些城镇之间通过RR 条道路(编号为11RR )和PP 条航线(编号为11PP )连接。每条道路ii 或者航线ii 连接城镇AiAiBiBi ,花费为CiCi
对于道路,0≤Ci≤1040≤Ci≤104 ,然而航线的花费很神奇,花费CiCi 可能是负数。道路是双向的,可以从AiAiBiBi ,也可以从BiBiAiAi ,花费都是CiCi 。然而航线与之不同,只可以从AiAiBiBi
事实上,由于最近恐怖主义太嚣张,为了社会和谐,出台了一些政策保证:如果有一条航线可以从AiAiBiBi ,那么保证不可能通过一些道路和航线从BiBi 回到AiAi 。由于 FJ 的奶牛世界公认十分给力,他需要运送奶牛到每一个城镇。他想找到从发送中心城镇SS 把奶牛送到每个城镇的最便宜的方案,或者知道这是不可能的。

输入格式:

第一行为四个空格隔开的整数:T,R,P,ST,R,P,S

第二到第R+1R+1 行:三个空格隔开的整数(表示一条道路):Ai,BiAi,Bi 和CiCi

第R+2R+2 到R+P+1R+P+1 行:三个空格隔开的整数(表示一条航线):Ai,BiAi,Bi 和CiCi

输出格式:

输出 TT 行,第 ii 行表示到达城镇 ii 的最小花费,如果不存在输出 NO PATH。
输入样例 复制
6 3 3 4 
1 2 5 
3 4 5 
5 6 10 
3 5 -100 
4 6 -100 
1 3 -10
输出样例 复制
NO PATH 
NO PATH 
5 
0 
-95 
-100

说明

样例说明

一共六个城镇。在11 和22,33 和44,55 和66 之间有道路,花费分别是55,55,1010。同时有三条航线:3→53→5,4→64→6 和1→31→3,花费分别是 −100100,−100100,−1010。FJ 的中心城镇在城镇44。FJ 的奶牛从44 号城镇开始,可以通过道路到达33 号城镇。然后他们会通过航线达到55 和66 号城镇。但是不可能到达11 和22 号城镇。

数据范围:

对于全部数据,1≤T≤2.5×104,1≤R,P≤5×104,1≤Ai,Bi,S≤T1≤T≤2.5×104,1≤R,P≤5×104,1≤Ai,Bi,S≤T。保证对于所有道路,0≤Ci≤1040≤Ci≤104,对于所有航线,−104≤Ci≤104−104≤Ci≤104

0
0
通过提交
时空限制1000ms/64mb
题目来源
评测方式在线评测
题目类型最短路径
难        度