hdu2112 spfa() 如果让我说:我只能说,实力决定一切
来源:互联网 发布:专业建模软件 编辑:程序博客网 时间:2024/04/30 13:33
思路:利用map进行判重,起始点和终止点可能相同。
#include<iostream>
#include<cstdio>
#include<string.h>
#include<cstdio>
#include<vector>
#include<queue>
#include<string>
#include<map>
#define inf 1<<30
using namespace std;
map<string,int>M;
queue<int>Q;
int T,t;
struct node
{
int to,w,next;
} e[21111];
int head[11111];
int vis[160];
int dis[160];
void init()
{
memset(head,-1,sizeof(head));
for(int i=0; i<160; i++)
{
dis[i]=inf;
vis[i]=0;
}
dis[1]=0;
}
void Build_gra(int u,int v,int w)
{
e[t].to=v;
e[t].w=w;
e[t].next=head[u];
head[u]=t++;
}
int spfa(int pox)
{
Q.push(pox);
while(!Q.empty())
{
int tem=Q.front();
Q.pop();
vis[tem]=0;
for(int i=head[tem]; i!=-1; i=e[i].next)
{
int gh=e[i].to;
if(dis[gh]>dis[tem]+e[i].w)
{
dis[gh]=dis[tem]+e[i].w;
if(!vis[gh])
{
vis[gh]=1;
Q.push(gh);
}
}
}
}
return dis[2];
}
int main()
{
string t1,t2;
int w,sum=0,a,b;
node tem;
int flag;
while(cin>>T)
{
if(T==-1)
break;
flag=t=sum=0;
init();
M.clear();
cin>>t1>>t2;
if(t1==t2)
{
flag=1;
}
M[t1]=++sum;
M[t2]=++sum;
for(int i=0; i<T; i++)
{
cin>>t1>>t2>>w;
if(flag)
continue;
if(M[t1]==0)
{
M[t1]=++sum;
}
a=M[t1];
if(M[t2]==0)
{
M[t2]=++sum;
}
b=M[t2];
Build_gra(a,b,w);
Build_gra(b,a,w);
}
if(flag)
{
printf("0\n");
continue;
}
int j=spfa(1);
if(j==inf)
printf("-1\n");
else
printf("%d\n",j);
}
return 0;
}
- hdu2112 spfa() 如果让我说:我只能说,实力决定一切
- hdu2544 spfa 第一弹 如果让我说:我只能说,实力决定一切
- hdu1535 spfa() 如果让我说:我只能说,实力决定一切
- hdu3339 spfa()+dp 如果让我说:我只能说,实力决定一切
- hdu 2642 二维数组+判重 如果让我说:我只能说,实力决定一切
- hdu1301 MST+优先队列 如果让我说:我只能说,实力决定一切。
- hdu2767强连通+缩点 如果让我说:我只能说,实力决定一切
- hdu1269强连通水题 如果让我说:我只能说,实力决定一切
- poj2553强连通+缩点 如果让我说:我只能说,实力决定一切
- poj2186 强连通+缩点 如果让我说:我只能说,实力决定一切
- hdu 1233 kruskal+优先队列 如果让我说:我只能说,实力决定一切。
- hdu 3191 次短路+优先队列 如果让我说:我只能说,实力决定一切
- poj3463 hdu1688 次短路+优先队列 如果让我说:我只能说,实力决定一切
- hdu 3336 KMP走起 如果让我说:我只能说,实力决定一切
- hdu3746 KMP之next[]威武 如果让我说:我只能说,实力决定一切。
- poj 2752 KMP+DFS() 如果让我说:我只能说,实力决定一切
- poj3974 hdu3068最长回文子串 如果让我说:我只能说,实力决定一切
- poj3321 树状数组+DFS() 如果让我说:我只能说,实力决定一切
- 改善C#:在C#中选择正确的集合进行编码
- ubuntu 11.04 搭建 NFS
- NYOJ 光棍的yy 斐波那契 大数
- DNW源码解析
- 面试题
- hdu2112 spfa() 如果让我说:我只能说,实力决定一切
- NYOJ 光棍节的快乐 南工451
- virtualbox虚拟机的网络配置
- 关于Java虚拟机中的字节码指令
- signal() 捕捉信号
- MySQL 数据库性能优化之SQL优化
- weblogic 80端口不能绑定的解决方法
- 改善C#:C#中标准Dispose模式的实现
- centos下更新Python的版本