hdoj 2066 一个人的旅行
来源:互联网 发布:淘宝hd无法登陆 编辑:程序博客网 时间:2024/05/17 04:23
11页竟然有图论题。。。
一遍dijkstra就可以,可以把家看成0城市,与家相邻的城市和家的连边权都是0,跑一遍dijkstra比较一波即可。
比较烦人的是要注意这里没给城市数,城市的编号也不是连续的。。。
#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>#define INF 0x3f3f3fusing namespace std;int T,S,D,n,ans,mp[1010][1010],dis[1010],a[1010];bool vis[1010];void dij(){ memset(vis,0,sizeof(vis)); memset(dis,INF,sizeof(dis)); for(int i=1;i<=n;i++) dis[a[i]]=mp[0][a[i]]; dis[0]=0; vis[0]=1; for(int i=0;i<=n;i++) { int tmp=INF,tj; for(int j=0;j<=n;j++) { if(dis[a[j]]<tmp&&!vis[a[j]]) { tmp=dis[a[j]]; tj=a[j]; } } vis[tj]=1; for(int j=0;j<=n;j++) { if(!vis[a[j]]) dis[a[j]]=min(dis[a[j]],dis[tj]+mp[tj][a[j]]); } }}int main(){ while(scanf("%d%d%d",&T,&S,&D)!=EOF) { n=0;ans=INF; memset(mp,INF,sizeof(mp)); memset(vis,0,sizeof(vis)); for(int i=1;i<=T;i++) { int x,y,z; scanf("%d%d%d",&x,&y,&z); if(mp[x][y]>z){mp[x][y]=z;mp[y][x]=z;} if(!vis[x]){vis[x]=1;a[++n]=x;} if(!vis[y]){vis[y]=1;a[++n]=y;} } for(int i=1;i<=S;i++) { int x; scanf("%d",&x); mp[0][x]=0;mp[x][0]=0; } dij(); for(int i=1;i<=D;i++) { int x; scanf("%d",&x); if(dis[x]<ans) ans=dis[x]; } printf("%d\n",ans); } return 0;}
阅读全文
0 0
- HDOJ 2066 一个人的旅行
- HDOJ-2066一个人的旅行
- hdoj 2066 一个人的旅行
- hdoj 2066 一个人的旅行
- hdoj 2066 一个人的旅行
- hdoj 2066 一个人的旅行
- HDOJ--2066--一个人的旅行
- hdoj 2066 一个人的旅行
- HDOJ -- 2066 一个人的旅行
- hdoj 2066 一个人的旅行
- HDOJ 一个人的旅行
- ACM HDOJ 2066 (一个人的旅行)
- hdoj 2066 一个人的旅行 【多源多汇最短路】
- hdoj.2066 一个人的旅行 20141107
- hdoj 2066 一个人的旅行 【dijstra】
- HDOJ 2066 一个人的旅行(Dijkstra)
- hdoj-2066-一个人的旅行(迪杰斯特拉)
- HDOJ-2066-一个人的旅行(最短路)
- 动态规划-入门篇
- 全文搜索引擎 Elasticsearch 入门教程
- java 开发 idea spring->resource添加多个资源配置文件夹
- 浅谈数据分库分表之道
- intellij IDEA右键没有Git或svn处理方法
- hdoj 2066 一个人的旅行
- 关于在python中, 在同一个project中的同一个目录里面, 导入模块的问题
- 3 栈和队列-栈的定义(待更改)
- ### Error building SqlSession. ### The error may exist in sqlmap/User.xml
- C++之父:C++ 的五个普遍误解(1)
- chapter22_2
- Python-Seaborn热图绘制
- 【bzoj 1066】蜥蜴(最大流)
- wustoj(医院设置)