单源最短路径 hdu 2066
#include<string.h> //和prim类似
#include<stdio.h> //prim所考虑的是节点与当前所建成的树的距离最小
using namespace std; //单源最短路径考虑的是节点与出发点距离最小
int vis[1005][1005];
bool boo[1005];
const int maxa=1000000;
struct que{int x,y,len;}
q[1005];
int main()
{
int leng[1005];
int t,s,d,a,b,time;
while(~scanf("%d%d%d",&t,&s,&d)){
memset(boo,0,sizeof(boo));
int MAX=0;
for(int i=0;i<1005;i++){
for(int k=0;k<1005;k++)
vis[i][k]=maxa;
}
for(int i=0;i<t;i++){
scanf("%d%d%d",&a,&b,&time);
if(a>MAX)
MAX=a;
if(b>MAX)
MAX=b;
if(vis[a][b]>time){
vis[a][b]=time;
vis[b][a]=time;
}
}
for(int i=0;i<=1005;i++){
leng[i]=maxa;
}
for(int i=0;i<s;i++){
scanf("%d",&a);
leng[a]=0;
}
for(int i=0;i<=MAX;i++){
int ii,mina=maxa;
for(int k=0;k<=MAX;k++){
if(boo[k]==0&&leng[k]<mina){
mina=leng[k];
ii=k;
}
}
boo[ii]=1;
for(int i=0;i<=MAX;i++){
if(leng[i]>leng[ii]+vis[ii][i])
leng[i]=leng[ii]+vis[ii][i];
}
}
int mina=maxa;
for(int i=0;i<d;i++){
scanf("%d",&a);
if(mina>leng[a])
mina=leng[a];
}
printf("%d\n",mina);
}
}
最新文章
- HTML 学习笔记 JavaScript (变量)
- Elasticsearch查询
- java中List的用法
- VB.NET版机房收费系统---SqlHelper
- asp.net core源码地址
- css自定义滚动条
- Dubbo 源码分析 - 集群容错之 Cluster
- input模拟输入下拉框
- 【CLR】解析AppDomain
- python摸爬滚打之day01----初识Python
- Tomcat多站点部署方式
- qt——c++环境下qt编程,类的声明与构造
- 安装新操作系统 Windows 路径设置 节省C盘空间
- Alpha阶段项目展示博客
- cursor:hand &; cursor:pointer
- PHP高级工程师面试 - 笔试题
- Django——多网页网站及网页互联
- BETA阶段冲刺
- couldn&#39;t import dot_parser
- Last_SQL_Error: Error &#39;Can&#39;t drop database &#39;ABC&#39;; database doesn&#39;t exist&#39; on query. Default database: &#39;ABC&#39;. Query: &#39;drop database ABC&#39;
热门文章
- SAX解析
- Number对象
- Linq延迟执行
- Jasper_table_Cloud not resolve style(s)
- Swift—do-try-catch错误处理模式-备
- jdk8新特性之lambda expressions
- 转:CString::GetLength()获得字节数的正确方法
- 进化计算简介和遗传算法的实现--AForge.NET框架的使用(六)
- Xamarin.Forms-webservices访问
- Codeforces Round #236 (Div. 2)E. Strictly Positive Matrix(402E)