HDOJ Choose the best route
来源:互联网 发布:固体密度数据 编辑:程序博客网 时间:2024/06/06 09:21
Choose the best route
http://acm.hdu.edu.cn/diy/contest_showproblem.php?cid=12497&pid=1011
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 9 Accepted Submission(s) : 3
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
Input
Each case begins with three integers n, m and s,(n<1000,m<20000,1=<s<=n) n stands for the number of bus stations in this city and m stands for the number of directed ways between bus stations .(Maybe there are several ways between two bus stations .) s stands for the bus station that near Kiki’s friend’s home.
Then follow m lines ,each line contains three integers p , q , t (0<t<=1000). means from station p to station q there is a way and it will costs t minutes .
Then a line with an integer w(0<w<n), means the number of stations Kiki can take at the beginning. Then follows w integers stands for these stations.
Output
Sample Input
5 8 51 2 21 5 31 3 42 4 72 5 62 3 53 5 14 5 122 34 3 41 2 31 3 42 3 211
Sample Output
1-1
Author
Source
#include<iostream>
using namespace std;
const int maxnum=1005;
const int maxint=9999999;
int dist[maxnum];
int map[maxnum][maxnum];
bool s[maxnum];
int n,m,t; //分别是车站数,道路数,始点
void init(){
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
map[i][j]=maxint;
}
void Dijkstra(int v){
for(int i=1;i<=n;i++){
dist[i]=map[v][i];
s[i]=0;
}
s[v]=1;
dist[v]=0;
for(int i=2;i<=n;i++){
int temp=maxint;
int u=v;
for(int j=1;j<=n;j++)
if((!s[j]) && dist[j]<temp){
temp=dist[j];
u=j;
}
s[u]=1;
for(int j=1;j<=n;j++)
if((!s[j]) && dist[u]+map[u][j]<dist[j])
dist[j]=dist[u]+map[u][j];
}
}
int main(){
int a,b,d;
while(scanf("%d%d%d",&n,&m,&t)!=EOF){
init();
for(int i=1;i<=m;i++){
scanf("%d%d%d",&a,&b,&d); //注意这里是从b 到 a
if(d<map[b][a])
map[b][a]=d; //注意这里是有向图
}
Dijkstra(t);
int w,min=maxint,x;
scanf("%d",&w);
for(int i=1;i<=w;i++){
scanf("%d",&x);
if(dist[x]<min)
min=dist[x];
}
if(min<maxint)
printf("%d\n",min);
else
printf("-1\n");
}
return 0;
}
- HDOJ Choose the best route
- ACM HDOJ 2680 (Choose the best route)
- hdoj 2680 Choose the best route
- HDOJ-2680Choose the best route(Dijkstra)
- HDOJ--2680--Choose the best route
- hdoj 2680 Choose the best route 【dijkstra】
- hdoj 2680 Choose the best route
- hdoj 2680 Choose the best route
- hdoj 2680 Choose the best route
- Choose the best route
- Choose the best route
- Choose the best route
- Choose the best route
- Choose the best route
- Choose the best route
- HDOJ-2680-Choose the best route 解题报告
- HDOJ 2680 Choose the best route(最短路,dijkstra)
- HDOJ 题目2680 Choose the best route(最短路)
- 开博
- hdu 4006 The kth great number(使用优先队列)
- Wince .net ListView控件 闪烁的问题
- 如何处理输入函数留下的“垃圾”
- 答报情痴无别物——钱钟书与杨绛
- HDOJ Choose the best route
- JQuery AJAX Partial Page refresh
- 压力测试工具集:http_load,siege
- 结构型模式(1)
- late_initcall
- appserv+zend optimizer+ECShop
- XMLRead
- http协议报文格式
- IT 面试题