HDU Tody HDU2112
不想用floyd了 也不一定适合 floyd只能处理小数据
dijkstra算法
wa了很久 一个是dijkstra里面的u 导致RE了无数次 下标溢出
还有就是注意细节 当起点和终点是一个地方的时候 输出0
#include<iostream>
#include<map>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
#define INF 99999999
int m1[][];
map<string,long long>ma;
int dis[];
int vis[];int c; void di()
{ memset(vis,,sizeof(vis));
for(int i=;i<=c;i++)
dis[i]=m1[][i];
vis[]=;
for(int i=;i<c-;i++)
{
int minn=INF;
int u;
for(int j=;j<=c;j++)
{
if(vis[j]==&&dis[j]<minn)
{
u=j;
minn=dis[j]; } }
vis[u]=;
for(int j=;j<=c;j++)
{
if(vis[j]==&&dis[u]+m1[u][j]<dis[j])
{
dis[j]=dis[u]+m1[u][j];
} } } } int main()
{
int n; while(scanf("%d",&n)==&&n!=-)
{ c=;
ma.clear();
string s1,s2;
int ok=;
cin>>s1>>s2;if(s1==s2){ok=;}
ma[s1]=++c;
ma[s2]=++c;
int time1; for(int i=;i<=;i++)
for(int j=;j<=;j++)
{
if(i==j)m1[i][j]=;
else m1[i][j]=INF; } while(n--)
{
cin>>s1>>s2>>time1;
if(ma[s1]==)ma[s1]=++c;
if(ma[s2]==)ma[s2]=++c;
if(time1<m1[ ma[s1] ][ ma[s2] ])
{
m1[ ma[s1] ][ ma[s2] ]=m1[ ma[s2] ][ ma[s1] ]=time1; } } di(); if(!ok)printf("0\n");
else {
if(dis[]!=INF)
printf("%d\n",dis[]);
else
printf("-1\n");
} } return ;
}
HDU Tody HDU2112的更多相关文章
- HDU2112 HDU Today 最短路+字符串哈希
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- hdu2112(HDU Today 简单最短路)
Problem Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD ...
- hdu2112 HDU Today
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目分类:SPFA算法+map容器 错误点:红色标记部分 代码: #include<bit ...
- Hdu-2112 HDU Today (单源多点最短路——Dijsktra算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目大意:给你N个公交车站,起点,终点,各站之间的距离,求起点到终点之间的最短距离.(起点终点相 ...
- hdu-2112 HDU Today---dijkstra+标号
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2112. 题目大意: 求起点到终点的最短路 解题思路: 对地名进行编号即可 然后直接dijkstra算 ...
- hdu2112 HDU Today 基础最短路
这题的关键是把车站的名字转化为点的编号.我用的是map.声明一个map<string,int> st,然后按照字符串出现的次序给st赋值.例如:st[s1]=2;代表这字符串s1出现的次序 ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
- hdu 4859 海岸线 Bestcoder Round 1
http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...
随机推荐
- 尚硅谷spring_boot课堂笔记
尚硅谷spring_boot课堂笔记
- C# 与 SQL Server 的数据类型对应关系
(一)C#与SQL Server 2005(或以下版本): C# C#取值 SQL Server SQL Server取值 System.DateTime samlltime System.Objec ...
- mysql数据库备份和恢复
1.数据库备份 mysqldump -uroot -proot jira736 > jira736.sql 2.数据库恢复 mysql -uroot -proot jira762 < ji ...
- python之join
def aa(): print ('hh') ' print ('gg') ' print ('ff') ' c=['ss','aa','dd'] a='kk'.join(c) print (a)#s ...
- 【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法
在计算loss的时候,最常见的一句话就是 tf.nn.softmax_cross_entropy_with_logits ,那么它到底是怎么做的呢? 首先明确一点,loss是代价值,也就是我们要最小化 ...
- cartographer 安装问题
安装主要参考hitcm教程: http://www.cnblogs.com/hitcm/p/5939507.html 这里只说安装过程中遇到的问题, ceres-solver 与 eigen3 版本不 ...
- Python3实现从文件中读取指定行的方法
from:http://www.jb51.net/article/66580.htm 这篇文章主要介绍了Python3实现从文件中读取指定行的方法,涉及Python中linecache模块操作文件的使 ...
- C++学习2--坦克大战编写-前置知识
基础班学习的这一个多月里的前三周讲解基础的语法,最后一周需要做坦克大战的项目巩固提高自己掌握的语法知识.这个系列博文主要是为了把学习过程中的知识点总结并记录下来: 开发语言与开发工具:C++,VS20 ...
- 深入分析Linux自旋锁【转】
转自:http://blog.chinaunix.net/uid-20543672-id-3252604.html 前言: 在复习休眠的过程中,我想验证自旋锁中不可休眠,所以编写了一个在自旋锁中休眠的 ...
- oracle分区分表
(1) 表空间及分区表的概念表空间: 是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间.分区表: 当表中的数据量不断增大,查询数据的速 ...