hdu2112 HDU Today
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112
题目分类:SPFA算法+map容器
错误点:红色标记部分
代码:
#include<bits/stdc++.h> using namespace std; map<string ,int> mymap; string s1,s2,s3,s4; int ok1,ok2;
int dis; const int INF=0x3f3f3f3f;
const int V=+;
const int E=;
int pnt[E],cost[E],nxt[E];
int e,head[V],d[V];
int temp[V][V];
bool vis[V];
int cnt[V];
int x[V];
int y[V];
int ans;
int ver;
bool ok; queue<int> que; void init()
{
e=;
memset(head,-,sizeof(head));
} inline void addedge(int u,int v,int c)
{
pnt[e]=v;
cost[e]=c;
nxt[e]=head[u];
head[u]=e++;
} int SPFA(int src,int n)
{
int i,u,v;
for(i=;i<=n;i++)
{
d[i]=INF;
cnt[i]=;
vis[i]=;
}
while(!que.empty())
que.pop();
que.push(src);
vis[src]=;
d[src]=;
++cnt[src]; while(!que.empty())
{
u=que.front();
que.pop();
vis[u]=;
for(i=head[u];i!=-;i=nxt[i])
{
v=pnt[i];
if(d[v]>d[u]+cost[i])
{
d[v]=d[u]+cost[i];
if(vis[v])
{
que.push(v);
vis[v]=;
}
}
}
}
if(d[n]==INF)
return -; return d[n];
} int main()
{
int n; while(scanf("%d",&n))
{
ok=;
int k=;
if(n==-) break;
cin>>s1>>s2;
int m = n;
init();
mymap.clear();
mymap.insert(map<string,int>::value_type(s1,1));
mymap.insert(map<string,int>::value_type(s2,2));
while(m--)
{ cin>>s3>>s4>>dis;
if(mymap.find(s3) == mymap.end())
{
k++;
mymap.insert(map<string,int>::value_type(s3,k));
}
if(mymap.find(s4) == mymap.end())
{
k++;
mymap.insert(map<string,int>::value_type(s4,k));
}
addedge(mymap[s3],mymap[s4],dis);
addedge(mymap[s4],mymap[s3],dis);
//cout<<mymap[s3]<<endl;
} if(s1==s2)
{
ok=1;
}
else
{
SPFA(,n);
}
if(ok) printf("0\n");
else if(d[2]==INF) printf("-1\n");
else printf("%d\n",d[]);
}
return ;
}
hdu2112 HDU Today的更多相关文章
- 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 ...
- 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出现的次序 ...
- HDU Tody HDU2112
不想用floyd了 也不一定适合 floyd只能处理小数据 dijkstra算法 wa了很久 一个是dijkstra里面的u 导致RE了无数次 下标溢出 还有就是注意细节 当起点和终点 ...
- 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 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...
随机推荐
- java调用163邮箱发送邮件
1:注册一个163邮箱,http://mail.163.com 调用发送邮件代码,查询smtp.163.com,作为发送邮件的服务器ip,类似的邮箱服务器应该也可以. MailSenderInfo m ...
- 【剑指Offer学习】【面试题17 ::合并两个排序的链表】
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是依照递增排序的 链表结点定义例如以下: public static class ListNode { int value; List ...
- C#调用存储过程实现分页(个人代码笔记)
分页的存储过程: drop proc LoadPageMain create Proc LoadPageMain @pageIndex )) Fid ) ].Rows ) ...
- js和循环依赖
kmdjs和循环依赖 循环依赖是非常必要的,有的程序写着写着就循环依赖了,可以提取出一个对象来共同依赖解决循环依赖,但是有时会破坏程序的逻辑自封闭和高内聚.所以没解决好循环依赖的模块化库.框架.编译器 ...
- 认识到了x64程序的必要性
假如我做一个程序,在运行过程中需要使用一个Map,然而这个Map存储了超多信息的话,系统内存不够就会崩溃了.以前的解决方案可能是把内容存储在一个文件/数据库里,但是有内存岂不是更方便.更直截了当!
- jquery子元素过滤选择器
:nth-child('索引值')//获取指定元素下的某个子元素的位置,索引从1开始: //偶数行 //$('li:nth-child(even)').addClass ...
- EasyUI - SplitButton 分割按钮
效果: html代码: <!--使用标签创建,直接使用即可,不必使用js代码--> <%--<a href="javascript:void(0)" id= ...
- Delphi中多标签页面的实现
unit uMain; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- php调用dll
http://download.csdn.net/detail/pinghe2005/5108556
- 怎样基于谷歌地图的Server缓存公布Image Service服务
怎样基于谷歌地图的Server缓存公布Image Service服务 第一步:下载地图数据 下载安装水经注万能地图下载器,启动时仅仅选择电子.谷歌(这里能够依据自己的须要选择).例如以下图所看到的. ...