HDOJ-2112 略坑爹的SPFA模板题
来源:互联网 发布:网络上被诈骗了怎么办 编辑:程序博客网 时间:2024/05/21 21:43
坑爹的两点...图竟然是无向图~~输入注意起点和终点时一个点的情况...
Program:
#include<iostream>#include<queue>#include<string.h>#include<map>#define oo 2000000000#define ll long longusing namespace std; struct node{ int x,y,w,next;}line[20005];int _link[2005],dp[2005],i,n,m,ss,ee;bool inqueue[2005];queue<int> myqueue;map<string,int> mymap;string s;char str[35];int SPFA(){ int i,h,k; while (!myqueue.empty()) myqueue.pop(); memset(inqueue,false,sizeof(inqueue)); memset(dp,-1,sizeof(dp)); dp[ss]=0; myqueue.push(ss); while (!myqueue.empty()) { h=myqueue.front(); myqueue.pop(); inqueue[h]=false; k=_link[h]; while (k) { if (dp[line[k].y]==-1 || dp[line[k].y]>dp[h]+line[k].w) { dp[line[k].y]=dp[h]+line[k].w; if (!inqueue[line[k].y]) { inqueue[line[k].y]=true; myqueue.push(line[k].y); } } k=line[k].next; } } return dp[ee];}int main(){ while (~scanf("%d",&m)) { if (m==-1) break; mymap.clear(); scanf("%s",str); s=str; mymap[s]=1; scanf("%s",str); s=str; n=1; if (mymap.find(s)==mymap.end()) { n++; mymap[s]=n; ee=2; }else ee=1; ss=1; memset(_link,0,sizeof(_link)); for (i=1;i<=m;i++) { scanf("%s",str); s=str; if (mymap.find(s)==mymap.end()) { n++; mymap[s]=n; line[i*2-1].x=n; }else line[i*2-1].x=mymap[s]; scanf("%s",str); s=str; if (mymap.find(s)==mymap.end()) { n++; mymap[s]=n; line[i*2-1].y=n; }else line[i*2-1].y=mymap[s]; scanf("%d",&line[i*2-1].w); line[i*2-1].next=_link[line[i*2-1].x]; _link[line[i*2-1].x]=i*2-1; line[i*2].x=line[i*2-1].y; line[i*2].y=line[i*2-1].x; line[i*2].w=line[i*2-1].w; line[i*2].next=_link[line[i*2].x]; _link[line[i*2].x]=i*2; } printf("%d\n",SPFA()); } return 0; }
- HDOJ-2112 略坑爹的SPFA模板题
- 卡哇伊狗狗的spfa模板
- poj 1511 spfa 模板题
- spfa模板
- spfa 模板
- SPFA模板
- SPFA 模板
- Spfa模板
- spfa---模板
- SPFA(模板)
- spfa模板
- SPFA模板
- SPFA 模板
- SPFA模板
- SPFA模板
- SPFA模板
- SPFA模板
- SPFA模板
- c的语法总结
- 为什么select会产生v$transaction中的纪录
- Android开发环境搭建
- 开发测试工程师系列课程 本周末开始了!
- 漢家將士(歌詞)
- HDOJ-2112 略坑爹的SPFA模板题
- 浅谈android的selector背景选择器
- 谁能帮我写个用C语言实现计算机网络零比特流插入
- 上报和分发消息的流程
- Ubuntu环境下配置NDK
- 查看Oracle当前用户下的信息(用户,表视图,索引,表空间,同义词,存储过程函数,约束条件)
- #多线程锁
- JQGrid的数据格式JSON
- MyEcllipse下更改项目名后