HDU 2544 最短路
来源:互联网 发布:simulink一端口多输入 编辑:程序博客网 时间:2024/05/20 14:44
#include <iostream>#include <cstdio>#include <climits>#include <cstring>#include <cstdlib>#include <cmath>#include <vector>#include <queue>#include <algorithm>#define esp 1e-6#define inf 0x0f0f0f0f#define LL long long using namespace std;/************************************************Desiner:hltime:2015/11/10Exe.Time:15MSExe.Memory:1632K用kuangbin大神的SPFA模板过的,用于熟悉模板和构图 ************************************************/const int MAXN=1111;const int MAXE=111111;//这个5000会REconst int INF=0x3f3f3f3f;int head[MAXN];int dist[MAXN];int cnt[MAXN];int que[MAXN];bool vis[MAXN];struct edge{ int to; int next; int v;}edge[MAXE];int tol;void init(){tol=0;memset(head,-1,sizeof(head));}void add(int a,int b,int c){ edge[tol].to=b; edge[tol].v=c; edge[tol].next=head[a]; head[a]=tol++;}bool SPFA(int start,int n){ int front=0,rear=0; for(int v=1;v<=n;v++) { if(v==start) { dist[v]=0; que[rear++]=v; vis[v]=true; cnt[v]=1; } else { dist[v]=INF; vis[v]=false; cnt[v]=0; } } while(front!=rear) { int u=que[front++]; vis[u]=false; if(front>=MAXN)front=0; for(int i=head[u];i!=-1;i=edge[i].next) { int v=edge[i].to; if(dist[v]>dist[u]+edge[i].v) { dist[v]=dist[u]+edge[i].v; if(!vis[v]) { vis[v]=true; que[rear++]=v; if(rear>=MAXN)rear=0; if(++cnt[v]>n)return true; } } } } return false;}int main(){int i,j,k,l,m,n,a,b,w;while(~scanf("%d%d",&m,&n)&&m+n){init();for(i=0;i<n;i++){scanf("%d%d%d",&a,&b,&w);add(a,b,w);add(b,a,w);}SPFA(1,m);printf("%d\n",dist[m]);}}
0 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 最短路
- iOS7: 如何获取不变的UDID
- 苹果公司开发者账号注册流程详解
- AlarmManager的一些方法
- AnimationDrawable
- 数字信号及分辨率
- HDU 2544 最短路
- zcmu1672
- oracle导数据
- toolBar主题设置
- Netty高性能大容量Socket并发(一):Netty性能测试
- InsetDrawable
- PERMISSION_UNFINISHED
- STM32低功耗模式--STOP模式
- 苹果IOS开发者账号总结