C - 一个人的旅行(最短路径)
- Input
-
输入数据有多组,每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个,草儿想去的地方有D个;
接着有T行,每行有三个整数a,b,time,表示a,b城市之间的车程是time小时;(1=<(a,b)<=1000;a,b 之间可能有多条路)
接着的第T+1行有S个数,表示和草儿家相连的城市;
接着的第T+2行有D个数,表示草儿想去地方。 - Output
- 输出草儿能去某个喜欢的城市的最短时间。
- Sample Input
-
6 2 3 1 3 5 1 4 7 2 8 12 3 8 4 4 9 12 9 10 2 1 2 8 9 10
- Sample Output
-
9
代码:
我是转载他人的 衔接:http://www.cnblogs.com/heqinghui/archive/2012/11/23/2784297.html
真的很棒 把多源的思路转化为单源的 真的挺好的不得不说 希望自己好好学习
#include <stdio.h>const int N=1002,oo=1000000000;int a[N][N],n,t,s,d;void init(){int x,y,z,i,j;for (i=0;i<N;i++)for (j=0;j<N;j++) a[i][j]=oo;n=0;for (i=1;i<=t;i++){scanf("%d%d%d",&x,&y,&z);if (z<a[x][y]) a[y][x]=a[x][y]=z;if (x>n) n=x;if (y>n) n=y;}n++;for (i=1;i<=s;i++) {scanf("%d",&x); a[0][x]=0;}//相邻点置为0for (i=1;i<=d;i++) {scanf("%d",&x); a[x][n]=0;}//好好体会,相当于改变了终点}void dijkstra(){int min,p,v[N]={0},i,j;for (j=1;j<=n;j++){min=oo;for (i=1;i<=n;i++)if (a[0][i]<min && !v[i]){min=a[0][i];p=i;}v[p]=1;for (i=1;i<=n;i++)if (a[0][p]+a[p][i]<a[0][i])a[0][i]=a[0][p]+a[p][i];}}
int main(){while (scanf("%d%d%d",&t,&s,&d)!=EOF){init();dijkstra();printf("%d\n",a[0][n]);}
return 0;}
C - 一个人的旅行(最短路径)相关推荐
- 群智能算法 第4关:蚁群算法 - 商队旅行最短路径计算
任务描述 本关任务:使用 python 实现蚁群算法,并寻找商队旅行最短路径. 相关知识 为了完成本关任务,你需要掌握:1.蚁群算法原理,2.蚁群算法流程,3.使用蚁群算法解决商队旅行问题. 蚁群算法 ...
- 《趣学算法》Chapter 2 贪心算法
Chapter 2 贪心算法 2.1 人之初,性本贪 2.2 加勒比海盗船--最优装载问题 2.3 阿里巴巴与四十大盗--背包问题 2.4 高级钟点秘书--会议安排 2.5 一场说走就走的旅行--最短 ...
- 《趣学算法》目录及签名版
第1章 算法之美 1 1.1 打开算法之门 2 1.2 妙不可言-算法复杂性 2 1.3 美不胜收-魔鬼序列 9 1.4 灵魂之交-马克思手稿中的数学题 16 1.5 算法学习瓶颈 21 ...
- HDU2066 一个人的旅行【最短路径+Floyd算法】
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- 算法课设第三题:3.Luck 的旅行计划(最短路径算法)
题目描述 Luck 是一名热爱旅游的羊驼,在即将到来的毕业假期她计划去多个地点旅游,但她还 没有安排旅游顺序,现在,Luck 有 n 个计划中想去的城市,她找到了连接这些城市的 m 条 双向道路,为了 ...
- HDU2066一个人的旅行---(多起点多终点最短路径)
http://acm.hdu.edu.cn/showproblem.php?pid=2066 一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memo ...
- 【算法】最短路径--Hdu2066 一个人的旅行
一个人的旅行 Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^), ...
- hdu2066一个人的旅行(多源点多汇点的最短路径问题)
/*思路:多源点,多会点的最短路径!将最小号-1的节点但最源点,将最大号+1的点当作汇点!将问题转变成从一个源点到一个汇点的最短路径的问题!开始忘记初始化vector了,哇了好多次....坑爹啊 */ ...
- usaco Cow Tours 牛的旅行
Cow Tours 牛的旅行 农民 John 的农场里有很多牧区.有的路径连接一些特定的牧区.一片所有连通的牧区称为一个牧场. 但是就目前而言,你能看到至少有两个牧区不连通.这样,农民 John 就有 ...
- 《商务旅行》解题报告
<商务旅行>解题报告 by mps [题目描述] 某首都城市的商人要经常到各城镇去做生意,他们按自己的路线去做,目的是为了更好的节约时间. 假设有N个城镇,首都编号为1,商人从首都出发,其 ...
最新文章
- 英特尔反驳质疑:芯片供应充足、10nm量产没问题
- 【Scratch】青少年蓝桥杯_每日一题_3.07_画金字塔
- Linux之特殊权限(SUID/SGID/SBIT)
- 关于搜狐焦点房产的数据分析
- Jmeter(一)-精简测试脚本
- 【leetcode】423. Reconstruct Original Digits from English
- JAVA Swing 事件监听
- 【kafka】Found a message larger than the maximum fetch size of this consumer on topic
- django之路由分组,路由分发,FBV,CBV,ORM框架
- 在asp中实现自动缩放图片(推荐)
- c语言中d1的分辨率是,C中的方法分辨率顺序
- Java开发文档Swagger的使用详细教程
- 高分1、2号卫星原始遥感影像数据
- 联想摄像头无法一直运行
- 七月份的尾巴是狮子座
- unity3D的FingerGestures插件详细说明
- 图解|网络究竟是如何运作的?
- 什么是HashMap
- 互联网金融平台功能分析及微服务架构设计
- 微信小程序云开发———云函数