hdu 2112 HDU Today (floyd算法)
这道题貌似在原来学长给我们的搞的小比赛中出过!
这次又让我遇到,果断拿下!
不过方法很蠢,跑了1000多ms,虽然要求5000ms以内!
题目就是给你一些位置之间的距离,然后再让你求特定的两点之间的距离!就是个样子滴!
只不过这道题更切合实际,给你的位置是字符串!
我的处理方法是将字符串转化为数字,数字不就是我们最熟悉的了吗!嘎嘎嘎···················
#include<stdio.h>
#include<string.h>
#define MAX 1000000000000
int main()
{
__int64 map[200][200],i,j,k,n,m,r,t,s;
char str[200][200],str1[200],str2[200];
while(scanf("%I64d",&n)!=EOF&&n>0)
{
for(i=0;i<=190;i++)
for(j=0;j<=190;j++)
map[i][j]=MAX;
scanf("%s %s",str1,str2);
strcpy(str[0],str1);
strcpy(str[1],str2);
m=2;
for(j=1;j<=n;j++)
{
scanf("%s %s %I64d",str1,str2,&s);
for(i=0;i<m;i++)//转化的过程
if(strcmp(str[i],str1)==0)
{
r=i;break;
}
if(i==m)
{
strcpy(str[m],str1);
r=m;
m++;
}
for(i=0;i<m;i++)
if(strcmp(str[i],str2)==0)
{
t=i;break;
}
if(i==m)
{
strcpy(str[m],str2);
t=m;
m++;
}
if(map[r][t]>s)
{
map[r][t]=s;
map[t][r]=s;
}
}
if(strcmp(str[0],str[1])==0)//特别注意,始点与终点相同的情况!这点使我wrong了几次!哎···,当知道这个特例时我将这个if语句放在前面了,结果还是wrong了,想了好久//才明白,原来是continue直接跳过了整个循环导致后面的内容输不进来了!囧!!!
{
printf("0\n");
continue;
}
for(k=0;k<m;k++)
for(i=0;i<m;i++)
for(j=0;j<m;j++)
if(map[i][j]>map[i][k]+map[k][j])
map[i][j]=map[i][k]+map[k][j];
if(map[0][1]==MAX)
printf("-1\n");
else
printf("%I64d\n",map[0][1]);
}
return 0;
}
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112
hdu 2112 HDU Today (floyd算法)的更多相关文章
- HDU 2066 最短路floyd算法+优化
http://acm.hdu.edu.cn/showproblem.php?pid=206 题意 从任意一个邻居家出发 到达任意一个终点的 最小距离 解析 求多源最短路 我想到的是Floyd算法 但是 ...
- 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 2112 HDU Today (Dijkstra算法)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDU 2112 HDU Today <SPFA算法+map函数>
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- hdu 2112 HDU Today (最短路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目大意:给出起点和终点,然后算出最短的路. 不过有好多细节要注意: (1)起始点和终止点相等的 ...
- HDU 2112 HDU Today(STL MAP + Djistra)
题目链接:HDU Today 立即集训要開始,抓紧时间练练手,最短路的基础题,第一次用STL的map 题目非常水,可是错了N遍.手贱了.本题不优点理的就是把地名转化为数字 #include <i ...
- hdu 2112 HDU Today 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目意思:又是求最短路的,不过结合埋字符串来考查. 受之前1004 Let the Balloo ...
- HDU 2112 HDU Today(最短路径+map)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
随机推荐
- 【前端vue开发】vue项目使用sass less扩展语言所要安装的依赖
1.创建一个基于 webpack 模板的新项目 $ vue init webpack myvue 2.在当前目录下,安装依赖 $ cd myvue $ npm install 3.安装sass的依赖包 ...
- Apache Lucene版本迁移指南
http://lucene.apache.org/core/4_0_0/MIGRATE.html 本文详细介绍了lucene的版本升级过程中的重大改进与调整. 比如:灵活的索引改变了低水平的域.词.文 ...
- 洛谷P1525关押罪犯
传送门啦 想让最大值最小,所以,这题可以用二分法,排序之后发现可以并查集,因为要使最大值最小,排序后这个最大值是存在的. 对于会冲突的两个罪犯,我们连一条无向边,然后按权值从大到小排序,从大到小枚举每 ...
- 洛谷P2422 良好的感觉
题目意思就是:最大化一个区间的和与这个区间的最小值的乘积. 换一个角度看问题,如果我们穷举一个最小值 $ a_i $ ,然后往左右扩展,显然是对的,复杂度 $ O(n^2) $.所以我们要优化一下这个 ...
- hdu 5943(素数间隔+二分图匹配)
Kingdom of Obsession Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth ...
- [C++]返回最值元素
1 priority_queue C++中优先队列是一种特殊的队列,能够返回队列中优先级最大或者最小的元素,其内部是由堆实现的,个人认为这种方式使用更加直观. 1.1 返回vector中的最值元素 # ...
- Bridge 桥接
意图 将抽象部分与它的实现部分分离,使它们都可以独立地变化. 动机 当一个抽象可能有多个实现时,通常用继承来协调它们.抽象类定义对该抽象的接口,而具体的子类则用不同方式加以实现.但是此方法有时不够灵活 ...
- Django: ImportError: No module named 'corsheaders'
pip3 install django-cors-headers #设置PIP镜像 pip3 --trusted-host pypi.python.org install django-cors-he ...
- LoadRunner脚本篇
LoadRunner脚本篇 1概述 2脚本录制 3脚本编写 4脚本调试 关 键 词:LoadRunner 性能测试脚本 摘 要:编写一个准确无误的脚本对性能测试有至关重要的意 ...
- bzoj 1264 [AHOI2006]基因匹配Match dp + 树状数组
思路:好难想啊, 考虑到应该从每个数字只有5个数字下手, 但是不知道到底该怎么写.. 首先我们将第一个串按数字的种类分类, 每一类里面有5个, 然后将第二个串里面的数字一个一个加,如果一个加入的第 i ...