HDU 2544 最短路
来源:互联网 发布:淘宝客服绩效软件 编辑:程序博客网 时间:2024/05/04 18:03
最短路裸奔。
spfa练习~
#include<stdio.h>#define INF 0x7FFFFFFF#include<queue>#include<string.h>using namespace std;int head[10005],tot;struct edge{ int st,ed,dis,next;}a[10005]; //邻接表int n,m;int dist[205]; //到某个点最短距离int in[205]; //点是否在队列中int cnt[205]; //点入队次数void add(int st,int ed,int dis){ a[tot].st=st,a[tot].ed=ed,a[tot].dis=dis; a[tot].next=head[st]; head[st]=tot++;}int spfa(int st,int ed){ queue<int>q; for(int i=0;i<=n;i++)dist[i]=INF; dist[st]=0,in[st]=0; q.push(st); while(q.size()){ int tp=q.front(),b; q.pop(); for(int i=head[tp];i!=-1;i=a[i].next){ b=a[i].ed; if(dist[tp]+a[i].dis<dist[b]){ dist[b]=dist[tp]+a[i].dis; if(in[b]==0){ in[b]=1,q.push(b); } cnt[b]++; if(cnt[b]>n)return 0; } }in[tp]=0; } return 1;}void init(){ tot=0; int st,ed,dis; memset(head,-1,sizeof(head)); memset(in,0,sizeof(in)); memset(cnt,0,sizeof(cnt)); for(int i=0;i<m;i++){ scanf("%d %d %d",&st,&ed,&dis); add(st,ed,dis),add(ed,st,dis); }}int main(){ while(scanf("%d %d",&n,&m)!=EOF){ if(n==0&&m==0)break; init(); spfa(1,n); if(dist[n]!=INF) printf("%d\n",dist[n]); } return 0;}
- 最短路 2544hdu
- HDU 2544 最短路
- HDU-2544 最短路
- Hdu-2544 最短路
- HDU 2544 最短路
- hdu 2544 最短路
- HDU 2544 ( 最短路 )
- hdu 2544 最短路
- HDU 2544 最短路
- hdu 2544 最短路
- hdu 2544 最短路
- HDU 2544 最短路
- hdu 2544 最短路
- HDU 2544 最短路
- hdu 2544 最短路
- HDU 2544 最短路
- hdu 2544 最短路
- hdu 2544 最短路
- 我的驱动开始之路-----LED驱动(作为字符设备)
- HDU3397:Sequence operation(线段树区间合并)
- Symfony2 dev environment下不显示profiler bar解决方法
- mysql 性能分析及explain用法
- 设计模式六大原则(1):单一职责原则
- HDU 2544 最短路
- discards qualifiers || new types may not be defined in a return type|| shadows a parameter
- 百万级PHP网站架构工具箱
- P2P
- 设计模式六大原则(3):依赖倒置原则
- Linux软连接和硬链接
- C语言实现文件命名按顺序递增
- 设计模式六大原则(4):接口隔离原则
- 海量数据面试题整理