题目链接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的更多相关文章

  1. HDU2112 HDU Today 最短路+字符串哈希

    HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  2. hdu2112(HDU Today 简单最短路)

    Problem Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD ...

  3. Hdu-2112 HDU Today (单源多点最短路——Dijsktra算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目大意:给你N个公交车站,起点,终点,各站之间的距离,求起点到终点之间的最短距离.(起点终点相 ...

  4. hdu-2112 HDU Today---dijkstra+标号

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2112. 题目大意: 求起点到终点的最短路 解题思路: 对地名进行编号即可 然后直接dijkstra算 ...

  5. hdu2112 HDU Today 基础最短路

    这题的关键是把车站的名字转化为点的编号.我用的是map.声明一个map<string,int> st,然后按照字符串出现的次序给st赋值.例如:st[s1]=2;代表这字符串s1出现的次序 ...

  6. HDU Tody HDU2112

    不想用floyd了 也不一定适合  floyd只能处理小数据 dijkstra算法 wa了很久   一个是dijkstra里面的u   导致RE了无数次   下标溢出 还有就是注意细节  当起点和终点 ...

  7. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  8. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  9. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

随机推荐

  1. 仿StackOverflow开发在线问答系统

    仿StackOverflow开发在线问答系统 [第二期11月9日开课]使用Python Flask Web开发框架实现一套类似StackOverflow的在线问答平台LouQA,具备提问,回答,评论点 ...

  2. maven本地jar

    <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId&g ...

  3. Android屏幕大小适配问题解决

    转载: 一.一些基本概念 1.长度(真实长度):英寸.inch 2.分辨率:density 每英寸像素数  dpi(密度) 3.像素:px 4.dip的公式:px /dip=dpi/160  所以 d ...

  4. NEC协议

    注意: 用示波器在接收头抓的电平看起来和NEC协议刚好相反, 那是因为:HS0038B 这个红外一体化接收头,当收到有载波的信号的时候,会输出一个低电平,空闲的时候会输出高电平. 具体情况,具体分析. ...

  5. c#实现Javascript的encodeURIComponent()函数

    原文  c#实现Javascript的encodeURIComponent()函数 国内外各搜索引擎,均用JavaScript的encodeURIComponent()函数对搜索关键字进行编码,终于找 ...

  6. XSS漏洞解决方案之一:过滤器

    一:web.xml文件 <!-- 解决xss漏洞 --> <filter> <filter-name>xssFilter</filter-name>   ...

  7. Qt exe图标

    1.首先准备一张ico照片,也可以通过http://www.ico.la/生成: 2.把ico照片拷贝到项目工程下,比如:“pic.ico” 3.在工程下,创建一个文件“myapp.rc”,用txt打 ...

  8. res/drawable目录

    在Android Eclipse项目中res/目录下包含有drawable-ldpi/,drawable-mdpi/,drawable-hdpi/,drawable-xhdpi/目录,这几个目录的后缀 ...

  9. haproxy timeout server 46000 后台超时时间

    [root@wx03 ~]# sh ./1.sh Wed Jul 6 19:54:40 CST 2016 <html><body><h1>504 Gateway T ...

  10. C keyword register 并讨论共同使用嵌入式汇编

    C keyword register 并讨论共同使用嵌入式汇编 register 是C99 的keyword之中的一个. register 是储存类型之中的一个.这里仅讨论register 储存类型. ...