hdu2066一个人的旅行(多源点多汇点的最短路径问题)
/*思路:多源点,多会点的最短路径!将最小号-1的节点但最源点,将最大号+1的点当作汇点!将问题转变成从一个源点到一个汇点的最短路径的问题!开始忘记初始化vector了,哇了好多次....坑爹啊 */ #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<vector> #define M 1100 #define INF 0x3f3f3f3f using namespace std;struct node{int v;int tt;node(){}node(int v, int tt){this->v=v;this->tt=tt; } };vector<node>v[M]; int d[M], vis[M]; int city[M]; int n; int T, S, D;void Dijkstra(){memset(d, 0x3f, sizeof(d));memset(vis, 0, sizeof(vis));d[0]=0;vis[0]=1;int root=0;for(int j=0; j<=n; ++j){int minLen=INF, p, len=v[root].size(); for(int i=0; i<len; ++i){int u=v[root][i].v;if(!vis[u] && d[u] > d[root] + v[root][i].tt)d[u] = d[root] + v[root][i].tt;}//将所有的与root节点连接的节点的距离进行更新for(int i=0; i<=n+1; ++i)//然后从0节点到所有的节点的最短的距离!if(!vis[i] && minLen>d[i]){p=i;minLen=d[i]; }if(minLen==INF)return;root=p;vis[root]=1;} }int main(){while(cin>>S>>T>>D){int a, b, t;n=-1;while(S--){cin>>a>>b>>t;v[a].push_back(node(b, t));v[b].push_back(node(a, t));n=max(n, max(a,b));} while(T--){cin>>a;v[0].push_back(node(a, 0)); v[a].push_back(node(0, 0));n=max(n,a);} for(int i=1; i<=D; ++i){cin>>city[i]; n=max(n, city[i]);}for(int i=1; i<=D; ++i){v[n+1].push_back(node(city[i],INF)); v[city[i]].push_back(node(n+1,0)); } Dijkstra();for(int i=0; i<=n+1; ++i)v[i].clear();cout<<d[n+1]<<endl;}return 0; }
转载于:https://www.cnblogs.com/hujunzheng/p/3905127.html
hdu2066一个人的旅行(多源点多汇点的最短路径问题)相关推荐
- HDU2066一个人的旅行---(多起点多终点最短路径)
http://acm.hdu.edu.cn/showproblem.php?pid=2066 一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memo ...
- HDU2066 一个人的旅行【最短路径+Floyd算法】
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- HDU-2066 一个人的旅行
HDU-2066 一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) P ...
- HDU2066一个人的旅行(SPFA)
问题描述 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗〜),但是草儿仍然很喜欢旅行,因为在旅途中会遇见很多人(白马王子, ^ 0 ^),很多事,还能丰富自己的阅历,还可以看美丽 ...
- hdu2066——一个人的旅行
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- hdu2066一个人的旅行(disjkstra)
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- hdu2066 一个人的旅行 floyd
Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰 ...
- 【算法】最短路径--Hdu2066 一个人的旅行
一个人的旅行 Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^), ...
- HDU-2066 一个人的旅行(dijkstra)
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
最新文章
- linux安装Python36
- 隐藏导航条HTML,jQuery实现的导航条切换可显示隐藏
- JDK 9 中有哪些 jmod 文件?
- Spring : Spring自定义FactoryBean
- 软件设计师12-数据库(数据操作)
- JunitTest上集
- 转载:Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- python相对路径-Python中的绝对路劲和相对路径
- 计算机硬盘存绝密,教您创建自己的绝密磁盘
- Windows免费录屏软件——captura
- ppt入门到精通全套视频教程,Word+Excel+PPT三合一教程(15G)
- 2020年中国轴承套圈行业市场现状分析,国内市场格局十分分散「图」
- iai控制器服务器ON信号,IAI 直角坐标机械手 IAIssel控制器
- OpenJDK Runtime Environment (IcedTea6 1.13.10) (rhel-1.13.10.0.el6_7-x86_64) OpenJDK 64-Bit Server V
- Python 常用迭代函数总结
- python归一化 增大差异_python-面向对象进阶
- Docer中使能GPU,GDB,perf
- OpenCV开发笔记(三十六):红胖子8分钟带你深入了解缩放与图像金字塔(图文并茂+浅显易懂+程序源码)
- 计算机语言学考研考什么,语言学及应用语言学考研有哪些内容-考研经验
- Python制作字符版gif图
热门文章
- 加载模型图_Tensorflow ckpt模型加载时的命名映射
- centos7.x redhat7.x 升级openssh8.7
- yarn : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本
- Vue项目npm打包推荐方式
- java.sql.SQLSyntaxErrorException: ORA-00923: 未找到要求的 FROM 关键字
- SpringBoot集成flowable-modeler(6.4.1) 实现免登
- 用Jenkins自动化搭建测试环境_入门试炼06
- VBA MultiPage 循环多页控件
- 简易投票系统数据库设计
- 汉字转html实体符号js_html实体编码遇上js代码