题目名称 1542. 假期旅行计划
输入输出 vacationgold.in/out
难度等级
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarmouse 于2014-03-07加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:7, 提交:25, 通过率:28%
Gravatar真呆菌 100 1.056 s 17.05 MiB C++
Gravatarcstdio 100 1.220 s 32.70 MiB C++
Gravatar, 100 1.490 s 18.10 MiB Pascal
Gravatar, 100 1.560 s 18.09 MiB Pascal
Gravatarlky 100 2.021 s 28.19 MiB C++
Gravatarlky 100 2.035 s 25.06 MiB C++
Gravatardigital-T 100 3.112 s 62.28 MiB C++
Gravatarlky 40 1.062 s 18.75 MiB C++
Gravatar请叫我“读者” 30 4.214 s 0.32 MiB C++
Gravatar超级傲娇的AC酱 30 7.503 s 0.31 MiB C++
本题关联比赛
20140307
关于 假期旅行计划 的近10条评论(全部评论)
————————————————题解慎点——————————————————
——————————————————————————————————————
每个枢纽扔进去spfa出这个枢纽到所有点的最短距离
对于每个询问,要么出发点是枢纽,直接找出答案;要么和出发点相连的点是枢纽,枚举找出最小值即可
Gravatarlky
2014-09-12 20:10 6楼
原来这么简单……一个SPFA的事……矮油我了个去……
Gravatarcstdio
2014-03-15 11:23 5楼
用堆优化的迪杰斯特拉写的。。
对任意2节点求单元最短路。把结果存到系统红黑树map里(这样保证内存不会爆)。
然后对应每条询问输出结果即可。
但是为何伤心的T了7组
Gravatar超级傲娇的AC酱
2014-03-10 13:14 4楼
回复 @高高高高高 :
哇,比我快我的怎么算正解。。。。。。
我是记录所有点到所有枢纽的最短路 和 所有枢纽到所有点的最短路 判断时枚举枢纽 即可
内存……时间……都非常拙计啊
Gravatardigital-T
2014-03-09 21:38 3楼
回复 @digital-T :
这题正解是什么?
Gravatar,
2014-03-09 20:17 2楼
好沙茶的错误啊!!!其他都对了,最后居然只要找到一条可行路就break了。。。
尼玛坑爹的第一问误导啊,大家不要再上当了。。。
Gravatardigital-T
2014-03-07 23:12 1楼

1542. 假期旅行计划

★   输入文件:vacationgold.in   输出文件:vacationgold.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】


Bovinia航空公司专门为N(1<=N<=20,000)个有牛居住的农场提供航空服务,跟其它航空公司一样,它们将其中的K(1<=K<=200,K<=N)个农场设成了航运枢纽。

目前,Bovinia航空公司提供了M(1<=M<=20,000)条单向航班,其中第i个航班从农场u_i出发至农场v_i,费用为d_i(1<=d_i<=10,000)美元。正像其它规划合理的航空公司一样,每一条航线的u_i和v_i中至少有一个为航运枢纽,在任意两个农场的任意方向上都最多只有一个直达航班,且任意一个航班的起点与始点都不会是同一个农场。

Bessie负责航空公司的票务工作。不幸的是,由于她花了几个小时外出吃了顿美味大餐,回来时便发现有Q(1<=Q<=50,000)个购票需求等着她处理,其中第i个需求是要从农场a_i到农场b_i。

处理这些票务快要把Bessie累垮了,请你帮她计算一下是否每个购票需求都能得到满足,以及能够满足的购票需求总计的费用最少是多少?

为了缩减输出规模,你只需输出能够被满足的购票需求的个数,和这些需求总共所需的最小费用。注意:这个费用有可能超出32位整型所能表示的范围。



【输入格式】


第1行有4个整数:N,M,K,Q;

接下来有M行,其中的第i行分别为u_i,v_i,d_i,(1<=u_i,v_i<=N,u_i!=v_i);

再接下来有K行,每行一个整数,为一个航运枢纽的编号(编号均在1~N之间);

最后有Q行,每行有两个数,表示一个购票需求中的起点和终点(1<=a_i,b_i<=N,a_i!=b_i)。


【输出格式】


第1行,有一个数,表示能被满足的购票需求的个数;

第2行,有一个数,表示所有能被满足的购票需求的总花费最小值。


【样例输入】

3 3 1 2 1 2 10 2 3 10 2 1 5 2 1 3 3 1

【样例输出】

1
20

【提示】


输出解释:

对于第1个需求,唯一可行的路线是1->2->3,花费为20;因为从3号农场没有出发的航班,那头可怜的牛只能滞留在该地。


【来源】

在此键入。