hdu-1874 SPFA
来源:互联网 发布:卡盟系统控制端php源码 编辑:程序博客网 时间:2024/06/05 11:16
noip day1 少得100分,看错题了。。。
/* * hdu-1874 SPFA * mike-w * 2011-11-12 */#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAXN 500#define MAXM 5000#define QSIZE 5000#define INF 999999typedef struct _lnode{int node,weight,next;}lnode;int hhead[MAXN],ID;int que[MAXN],inq[MAXN],head,tail,len;lnode list[MAXM];int M,N,S,T;int d[MAXN];int push(int e){que[tail++]=e;len++;if(tail==QSIZE)tail=0;return 0;}int pop(int *e){*e=que[head++];len--;if(head==QSIZE)head=0;return 0;}int insert(int start,int end,int weight){int pos,nxt;if(hhead[start]==-1){pos=hhead[start]=ID++;list[pos].node=end;list[pos].weight=weight;list[pos].next=-1;}else{pos=hhead[start];nxt=list[pos].next;pos=list[pos].next=ID++;list[pos].node=end;list[pos].weight=weight;list[pos].next=nxt;}return 0;}int SPFA(void){int i,x,pos;head=tail=len=0;for(i=0;i<N;i++){inq[i]=head=tail=len=0;d[i]=INF;}push(S);inq[S]=1;d[S]=0;while(len>0){pop(&x);inq[x]=0;for(pos=hhead[x];pos!=-1;pos=list[pos].next){if(d[x]+list[pos].weight<d[list[pos].node]){d[list[pos].node]=d[x]+list[pos].weight;if(!inq[list[pos].node])push(list[pos].node),inq[list[pos].node]=1;}}}if(d[T]==INF)return -1;elsereturn d[T];}int main(void){int i,t1,t2,t3;#ifndef ONLINE_JUDGEfreopen("in","r",stdin);#endifwhile(scanf("%d%d",&N,&M)!=EOF){for(i=0;i<=N;i++)hhead[i]=-1;ID=0;for(i=1;i<=M;i++){scanf("%d%d%d",&t1,&t2,&t3);insert(t1,t2,t3);insert(t2,t1,t3);}scanf("%d%d",&S,&T);printf("%d\n",SPFA());}return 0;}
- hdu-1874 SPFA
- hdu 1874 (spfa)
- hdu 1874 (spfa)
- HDU 1874 SPFA
- SPFA HDU 1874模板
- hdu 1874 畅通工程续 (SPFA模板)
- HDU 1874 畅通工程续 dijkstra&&spfa
- HDU 1874 畅通工程续 <SPFA算法>
- hdu-1874 畅通工程续(SPFA做法)
- hdu 1874 畅通工程续-spfa
- [HDU 1874] 畅通工程续 spfa 写法
- HDU 1874 畅通工程续 (SPFA)
- HDU 1874畅通工程续【SPFA】
- HDU 1874 畅通工程续(spfa)
- hdu 1874 畅通工程续(spfa)
- HDU-1874-畅通工程续【SPFA】
- hdu 1596(SPFA)
- SPFA首题!hdu-2544
- mysql 如何统计表大小
- POJ 1041 John's trip (欧拉回路)
- 简明 Vim 练级攻略
- 联想电脑型号知识大全
- 图论简介
- hdu-1874 SPFA
- Linux openvpn客户端的安装的使用方法
- 一个人的世界一个人的生活
- 虚拟信用卡免费申请(工行E卡充值entropay虚拟信用卡)
- 网络性能测试工具iperf的注意事项
- hdoj2001
- 内存对齐
- hdoj2002
- 处理mysql不区分字母大小写的问题