hdu3986枚举+最短路
来源:互联网 发布:pc电流测试软件 编辑:程序博客网 时间:2024/06/10 09:34
就是一道求次短路的题目。
#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int oo=1e8;const int mm=1100;const int mn=100010;int ver[mn],next[mn];int head[mm],dis[mm],p[mm],q[mn],d[mm][mm][2];bool vis[mm];int edge,n;void addedge(int u,int v,int c){ if(c<d[u][v][0]) { if(d[u][v][0]==oo) { d[u][v][0]=d[v][u][0]=c; ver[edge]=v,next[edge]=head[u],head[u]=edge++; ver[edge]=u,next[edge]=head[v],head[v]=edge++; } else d[u][v][1]=d[v][u][1]=d[u][v][0],d[u][v][0]=d[v][u][0]=c; } else d[u][v][1]=d[v][u][1]=min(d[u][v][1],c);}int spfa(bool save){ int i,u,v,l,r=0,tmp; for(i=0;i<=n;i++) dis[i]=oo; dis[q[r++]=1]=0; if(save) p[1]=p[n]=-1; for(l=0;l!=r;(++l>mn)?l=0:l) for(i=head[u=q[l]],vis[u]=0;i>=0;i=next[i]) if(dis[v=ver[i]]>(tmp=dis[u]+d[u][v][0])) { dis[v]=tmp; if(save) p[v]=u; if(vis[v]) continue; vis[q[r++]=v]=1; if(r>=mn) r=0; } return dis[n];}int main(){ int t,m,i,j,k,ans; scanf("%d",&t); while(t--) { scanf("%d",&n); scanf("%d",&m); edge=0; for(i=1;i<=n;i++) for(j=1;j<=n;j++) d[i][j][0]=d[i][j][1]=oo; memset(vis,0,sizeof(vis)); memset(head,-1,sizeof(head)); while(m--) scanf("%d%d%d",&i,&j,&k),addedge(i,j,k); ans=spfa(1); for(i=n,j=p[n];i!=1&&j>=0;i=j,j=p[j]) { int k=d[i][j][0]; d[i][j][0]=d[j][i][0]=d[i][j][1]; ans=max(ans,spfa(0)); d[i][j][0]=d[j][i][0]=k; if(ans>=oo) break; } if(ans>=oo) printf("-1\n"); else printf("%d\n",ans); } return 0;}
- hdu3986枚举+最短路
- hdu3986 spfa + 枚举最短路上的边
- HDU3986 Harry Potter and the Final Battle最短路
- hdu2363 枚举+最短路
- hdu2363 枚举最短路
- HDU3986(Harry Potter and the Final Battle)-枚举最短路径+SPFA
- hdu 3986 (枚举+最短路)
- HDU 3986 最短路+枚举
- poj 1062 最短路+枚举
- HDU1595(枚举+最短路(dijkstra))
- uva_11374_Airport Express(最短路+枚举)
- hdu2962 限制最短路+枚举
- hdu3986
- hdu3986
- HDU3986
- hdu 2363(限制最短路 二分+枚举+最短路)
- 1062 昂贵的聘礼 //枚举+最短路
- HDU 1595 枚举+最短路(删掉边)
- 沟通 理解 释怀
- java的线程同步机制synchronized关键字的理解
- 委托与事件
- hdu1849 Rabbit and Grass 距离转为NIM 水题
- java同步机制 synchronized
- hdu3986枚举+最短路
- 程序员面经
- WEB应用中普通Java程序如何读取资源文件
- openstack 删除僵尸实例 删除实例 删除instance(非屏蔽外键)
- 让 Source Insight 显示全路径
- coth 函数
- java中synchronized用法 .
- VMware两台虚拟主机出现相同MAC的解决办法
- 二进制中1的个数