hdu 2066 一个人的旅行
来源:互联网 发布:ubuntu 桌面壁纸 编辑:程序博客网 时间:2024/06/04 19:20
最短路问题,果然好久不做都忘得差不多了,跑一次Dijkstra算法把所有点的最短距离都跑出来
#include<iostream>#include<cstring>#define maxn 1005#define inf 1<<30using namespace std;int t,s,d;int mapp[maxn][maxn];int w[maxn];int visit[maxn];int di[maxn];void solve(){memset(visit,0,sizeof(visit));fill(di,di+maxn,inf);di[0]=0;while(t--){int v=-1;for(int i=0;i<maxn;i++){if(!visit[i]&&(v==-1||di[i]<di[v])) v=i;}//cout<<s<<"~"<<v<<endl;visit[v]=1;for(int i=0;i<maxn;i++){if(mapp[v][i]!=inf){di[i]=min(di[i],di[v]+mapp[v][i]);//cout<<i<<"~"<<di[i]<<endl;}}}}int main(){while(cin>>t>>s>>d){for(int i=0;i<maxn;i++){for(int j=0;j<maxn;j++) mapp[i][j]=inf;}for(int i=0;i<t;i++){int x,y,z;cin>>x>>y>>z;mapp[y][x]=mapp[x][y]=min(z,mapp[x][y]);}for(int i=0;i<s;i++){int x;cin>>x;mapp[0][x]=mapp[x][0]=0;}for(int i=0;i<d;i++) cin>>w[i];solve();int re=inf;for(int i=0;i<d;i++){re=min(re,di[w[i]]);}cout<<re<<endl;}return 0;}
0 0
- HDU 2066 一个人的旅行
- hdu 2066 一个人的旅行
- HDU-2066 一个人的旅行
- Hdu-2066 一个人的旅行
- HDU 2066 一个人的旅行
- HDU 2066 一个人的旅行
- hdu 2066 一个人的旅行
- hdu 2066 一个人的旅行
- hdu 2066 一个人的旅行
- HDU 2066 一个人的旅行
- hdu 2066 一个人的旅行
- HDU 2066 一个人的旅行
- hdu 2066 一个人的旅行
- hdu 2066 一个人的旅行
- HDU 2066 一个人的旅行
- HDU 2066 一个人的旅行
- HDU 2066 一个人的旅行
- hdu 2066(一个人的旅行)
- 关于编译报错“dereferencing pointer to incomplete type...
- HDU ACM 5273 Dylans loves sequence->DP
- 深入浅出AOP(一)
- Eclipse常用快捷键
- “概要设计说明书”编写规范
- hdu 2066 一个人的旅行
- C# 判断字符串是否为数字
- 数组
- numberprogressbar开源项目的介绍
- 随手指拖动而变色的ScrollView
- Eclipse修改Project的目录位置
- 详细设计说明书编写规范
- Vijava 学习笔记之(VirtualMachine 更改虚拟机系统磁盘大小)
- poj 2017 Speed Limit