hdu 2112
#include<stdio.h>
#include<string.h>
#define N 200
#define inf 999999999999
__int64 map[N][N],dis[N];
char s[N][40];
void dijkstra(__int64 s,__int64 t,__int64 n) {
__int64 visit[N],u,min,i,j;
for(i=0;i<n;i++) {
visit[i]=1;
dis[i]=map[s][i];
}
visit[s]=0;
for(i=0;i<n-1;i++) {
min=inf;
for(j=0;j<n;j++)
if(min>dis[j]&&visit[j]) {
min=dis[j];
u=j;
}
visit[u]=0;
for(j=0;j<n;j++)
if(visit[j]&&map[u][j]<inf) {
if(dis[j]>dis[u]+map[u][j])
dis[j]=dis[u]+map[u][j];
}
}
}
int main() {
__int64 t,n,m,count,kai,jie,i,j;
char start[40],end[40],str[40],str1[40];
while(scanf("%I64d",&n),n!=-1) {
for(i=0;i<=160;i++) {
dis[i]=inf;
for(j=0;j<=160;j++)
map[i][j]=i==j?0:inf;
}
scanf("%s%s",start,end);
count=0;
while(n--) {
scanf("%s%s%I64d",str,str1,&t);
for(i=0;i<count;i++)
if(strcmp(s[i],str)==0) {
kai=i;
break;
}
if(i==count) {
strcpy(s[count],str);
kai=count;
count++;
}
for(i=0;i<count;i++)
if(strcmp(s[i],str1)==0) {
jie=i;
break;
}
if(i==count) {
strcpy(s[count],str1);
jie=count;
count++;
}
map[kai][jie]=map[jie][kai]=t;
}
kai=-1;
jie=-1;
for(i=0;i<count;i++) {
if(strcmp(s[i],start)==0)
kai=i;
if(strcmp(s[i],end)==0)
jie=i;
}
if(kai==-1||jie==-1) {//一定是||刚开始时&&一直错
printf("-1\n");
continue;
}
dijkstra(kai,jie,count);
if(dis[jie]<inf)
printf("%I64d\n",dis[jie]);
else
printf("-1\n");
}
return 0;
}
hdu 2112的更多相关文章
- hdu 2112 (最短路+map)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 HDU Today Time Limit: 15000/5000 MS (Java/Others) ...
- hdu 2112 HDU Today
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2112 HDU Today Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的 ...
- HDU 2112 HDU Today(Dijkstra)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 HDU Today Time Limit: 15000/5000 MS (Java/Others ...
- HDU Today hdu 2112
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2112 文章末有一些相应的测试数据供参考. 此题就是一个求最短路的问题,只不过现在的顶点名称变成了字符串而不 ...
- hdu 2112 HDU Today (floyd算法)
这道题貌似在原来学长给我们的搞的小比赛中出过! 这次又让我遇到,果断拿下! 不过方法很蠢,跑了1000多ms,虽然要求5000ms以内! 题目就是给你一些位置之间的距离,然后再让你求特定的两点之间的距 ...
- 【hdu 2112】 HDU Today ( 最短路 Dijkstra)(map)
http://acm.hdu.edu.cn/showproblem.php?pid=2112 这道题给了一个将字符串与int对应的思路,就是使用map 这道题答案对了,但是没有AC,我也不知道为什么. ...
- HDU 2112 Today(Dijkstra+map)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目大意: 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050 ...
- hdu 2112 HDU Today (最短路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目大意:给出起点和终点,然后算出最短的路. 不过有好多细节要注意: (1)起始点和终止点相等的 ...
- hdu 2112 HDU Today 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目意思:又是求最短路的,不过结合埋字符串来考查. 受之前1004 Let the Balloo ...
- HDU 2112 HDU Today (Dijkstra算法)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
随机推荐
- Intro Of Myself
- IOS应用
下面是这个类的一些功能: 1.设置icon上的数字图标 //设置主界面icon上的数字图标,在2.0中引进, 缺省为0 [UIApplicationsharedApplication].applica ...
- function calling convention
这是2013年写的一篇旧文,放在gegahost.net上面 http://raison.gegahost.net/?p=31 February 19, 2013 function calling c ...
- Web服务器安全设置
Web服务器安全方面一直重视程度不够,是各种网站经常被黑的主要原因.下面笔者总结了一下关于怎样保证Web服务器安全的措施,希望能给那些服务器尚存在漏洞的用户提供一些帮助. 本文主要以Windows s ...
- 洛谷 P2580 于是他错误的点名开始了
题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已结束比赛CON900). ...
- ftp 报错 200 Type set to A
最近在使用ssis 从ftp服务器抓起文件到本地的时候,发现连接ftp出错 200 Type set to A 解决办法: ftp connection 中 设置UsePassiveMode 为Tru ...
- JDO
JDO 编辑 本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! JDO(Java Data Object )是Java对象持久化的新的规范,也是一个用于存取某种数据仓库中的对象 ...
- Linux之用户权限管理
chmod(更改目录或文件权限) 在linux中,文件的权限分为3中,拥有者,群组,其他人.而chmod则是对权限更改的命令. u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个组,o 表示其 ...
- eclipse生成spring boot jar包
1.右击项目,选择Run As - Maven clean 2.右击项目,选择Run As - Maven install 3.成功后 会在项目的target文件夹下生成jar包 4.将打包好的jar ...
- C++友元函数和运算符重载
非成员友元函数.成员友元函数和友元类 1.友元的作用: (1)友元提供了不同类的成员函数之间.类的成员函数与一般函数之间进行了数据共享的机制: 2.友元的优点和缺点 优点:提高程序的运行效率: 缺点: ...