hdu2112 HDU Today 最短路 水题_hdu最短路-程序员宅基地

技术标签: output  struct  input  ini  交通  小水  

HDU Today

Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 5442    Accepted Submission(s): 1315


Problem Description
经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强。这时候,XHD夫妇也退居了二线,并在风景秀美的诸暨市浬浦镇陶姚村买了个房子,开始安度晚年了。
这样住了一段时间,徐总对当地的交通还是不太了解。有时很郁闷,想去一个地方又不知道应该乘什么公交车,在什么地方转车,在什么地方下车(其实徐总自己有车,却一定要与民同乐,这就是徐总的性格)。
徐总经常会问蹩脚的英文问路:“Can you help me?”。看着他那迷茫而又无助的眼神,热心的你能帮帮他吗?
请帮助他用最短的时间到达目的地(假设每一路公交车都只在起点站和终点站停,而且随时都会开)。
 

Input
输入数据有多组,每组的第一行是公交车的总数N(0<=N<=10000);
第二行有徐总的所在地start,他的目的地end;
接着有n行,每行有站名s,站名e,以及从s到e的时间整数t(0<t<100)(每个地名是一个长度不超过30的字符串)。
note:一组数据中地名数不会超过150个。
如果N==-1,表示输入结束。
 

Output
如果徐总能到达目的地,输出最短的时间;否则,输出“-1”。
 

Sample Input
  
  
   
6xiasha westlake
xiasha station 60
xiasha ShoppingCenterofHangZhou 30
station westlake 20
ShoppingCenterofHangZhou supermarket 10
xiasha supermarket 50
supermarket westlake 10
-1
 

Sample Output
  
  
   
50
Author
lgx
 
 
#include<stdio.h>
#include<string.h>
int map[155][155],used[155],n,m,min[155];
char start[40],end[40];
struct haha
{
	char s[40];
}sta[155];
void init()
{
	int i,j;
	// printf("2");
	for(i=1;i<154;i++)
		for(j=1;j<154;j++)
			if(i!=j) map[i][j]=999999999;
			else map[i][j]=0;
}
void find_short(int s)
{
	int i,j,mm,pos;
	memset(used,0,sizeof(used));
	//printf("3\n");
    used[s]=1;
	for(j=1;j<n;j++)
		min[j]=map[s][j];
	min[s]=0;
	//  printf("2\n");
	for(j=2;j<n;j++)
	{
		mm=999999999;
		for(i=1;i<n;i++)
		{
			if(!used[i]&&mm>min[i])
			{
				pos=i;
				mm=min[i];
			}
		}
		// printf("3");
		used[pos]=1;
		if(mm==999999999) break;
		for(i=1;i<n;i++)
		{
			if(!used[i]&&min[pos]+map[pos][i]<min[i])
				min[i]=min[pos]+map[pos][i];
		}
	}
}
int main()
{
	int i,j,v,x,y,s,e;
	char s1[40],s2[40];
	while(scanf("%d",&m)!=EOF)
	{
		n=1;
		if(m==-1) break;
		init();
		scanf("%s %s",start,end);
		//  printf("1");
		for(i=1;i<=m;i++)
		{
			scanf("%s %s %d",s1,s2,&v);
			for(j=1;j<n;j++)
			{
				if(strcmp(s1,sta[j].s)==0) {x=j;break;};
			}
			if(j==n) {strcpy(sta[n].s,s1); x=n; n++;}
			
			for(j=1;j<n;j++)
			{
				if(strcmp(s2,sta[j].s)==0) {y=j;break;}
			}
			if(j==n) {strcpy(sta[n].s,s2);y=n;n++;}
			if(map[x][y]>v) map[y][x]=map[x][y]=v;
		}
        for(i=1;i<n;i++)
			if(strcmp(start,sta[i].s)==0)
                break;
			if(i==n) {printf("-1\n");continue;}
			else s=i;
			for(i=1;i<n;i++)
				if(strcmp(end,sta[i].s)==0) break;
				if(i==n) {printf("-1\n");continue;}
				else e=i;
				find_short(s);
				if(min[e]==999999999) printf("-1\n");
				else
					printf("%d\n",min[e]);
	}
	return 0;
}
/*本题很通俗 就是处理一下字符串即可  主要思想一点都没有变 该题不难*/




版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hnust_xiehonghao/article/details/7795597

智能推荐

一文搞懂telnet在windows和linux上的使用方法,准备Linux运维面试-程序员宅基地

文章浏览阅读534次,点赞9次,收藏10次。分时系统允许多个用户同时使用一台计算机,为了保证系统的安全和记帐方便,系统要求每个用户有单独的帐号作为登录标识,系统还为每个用户指定了一个口令。用户在使用该系统之前要输入标识和口令,这个过程被称为’登远程登陆是指用户使用Telnet命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。但是,telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。因为默认是不允许root登陆的,我没有去开启允许root直接登陆,所以我用的一个普通用户登陆!

spark特殊join算子,join时何时产生shuffle,何时不产生shuffle_spark join shuffle-程序员宅基地

文章浏览阅读3.1k次,点赞6次,收藏25次。1、 什么是宽窄依赖,宽依赖: 发生shuffle时,一定会产生宽依赖,宽依赖是一个RDD中的一个Partition被多个子Partition所依赖(一个父亲多有儿子),也就是说每一个父RDD的Partition中的数据,都可能传输一部分到下一个RDD的多个partition中,此时一定会发生shuffle窄依赖: 一个RDD中的一个 Partition最多 被一个 子 Partition..._spark join shuffle

python依赖库路径-程序员宅基地

文章浏览阅读4.5k次。python库分标准库和第三方库输出依赖库: import sys sys.path标准库目录: home 目录/pythonXX.XX/lib第三方库目录: 在 lib 下的 site-packages 目录下 home 目录/pythonXX.XX/lib/pythonXX.XX/site-pack..._python依赖库路径

java+springboot的幼儿园管理系统-程序员宅基地

文章浏览阅读296次,点赞4次,收藏5次。给大家送一个小福利附高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!**

Spring-ApplicationContext解读_applicationcontext的作用-程序员宅基地

文章浏览阅读2.6w次,点赞28次,收藏101次。BeanFactory和ApplicationContextSpring通过一个配置文件描述Bean和Bean之间的依赖关系,利用Java反射功能实例化Bean,并建立Bean之间的依赖关系。 Spring的IOC容器在完成这些底层工作的基础上,还提供了Bean实例缓存、生命周期管理、Bean实例代理、时间发布、资源装载等高级服务。 BeanFactory是Spring框架最核心的接口,它提供了高级_applicationcontext的作用

浅析C语言的一个关键字——register_register char * yysource-程序员宅基地

文章浏览阅读327次。--------------------- 本文来自 21aspnet 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/21aspnet/article/details/257511?utm_source=copy1、register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。例如下面的内存块拷贝代码..._register char * yysource

随便推点

OpenAI-ChatGPT最新官方接口《从0到1生产最佳实例》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(十一)(附源码)_open ai chatgpt继续生成和停止生成接口-程序员宅基地

文章浏览阅读3.2k次。不管你是一位高级工程师还是程序小白,想要创建一个 ChatGPT 驱动的应用并将其部署到生产环境中,那你一定不要错过官方 ChatGPT 生产最佳实践指南,它将使从头开始构建一个高质量的AI产品变得轻而易举。_open ai chatgpt继续生成和停止生成接口

kubernetes之API server的安全防护_kube-apiserver禁用3des-程序员宅基地

文章浏览阅读233次。此博客借鉴了较多书中的内容,仅仅作为自己学习整理使用。该书为《kubernetes in action》,有兴趣的朋友可以读读这本书。kubernetes集群组件kubernetes集群分为两部分:Kubernetes控制平面、工作节点Kubernetes控制平面:用来存储、管理集群状态(1)etcd分布式持久化存储(2)api server(3)scheduler(4)c..._kube-apiserver禁用3des

MicroPython TM1621 驱动 代码_tm1621d代码-程序员宅基地

文章浏览阅读431次,点赞6次,收藏7次。MicroPython TM1621 驱动 代码_tm1621d代码

USACO 1.4 - Arithmetic Progressions(DFS)_【usaco题库】1.4.3 arithmetic progressions等差数列-程序员宅基地

文章浏览阅读860次。An arithmetic progression is a sequence of the form a, a+b,a+2b, ..., a+nb where n=0,1,2,3,... . For this problem, a is anon-negative integer and b is a positive integer.Write a program that finds a_【usaco题库】1.4.3 arithmetic progressions等差数列

VS2008 配置Ajax Control Toolkits _类型“system.web.ui.updatepanel”不具有名为“autocompleteext-程序员宅基地

文章浏览阅读946次。 添加工具栏 下载 AjaxControlToolkit 下载完成后解压缩,把 ../AjaxControlToolkit-Framework3.5/SampleWebSite/Bin 下的所有文件都Ctrl+C到 ../AjaxControlToolkit-Framework3.5/Binaries 下,这样做是为了之后在VS2008中添加工具栏做准备。 _类型“system.web.ui.updatepanel”不具有名为“autocompleteextender”的公共属性。

PostgreSQL中查看/关闭正在执行的SQL、锁和事务_pgsql关闭正在查询的物化视图-程序员宅基地

文章浏览阅读9.8k次,点赞6次,收藏15次。介绍PG查看/关闭链接、查看锁的方式,同时提供了MySQL的类似性能监控和分析_pgsql关闭正在查询的物化视图

推荐文章

热门文章

相关标签