bzoj 1726: [Usaco2006 Nov]Roadblocks第二短路
来源:互联网 发布:算法复杂性影响因素 编辑:程序博客网 时间:2024/05/29 19:37
不太会dijkstra..所以我用的是spfa。
维护最短路和次短路即可
#include<cstdio>using namespace std;#include<cstdio>#include<string>#include<cstring>using namespace std;int head[100001];struct map{ int f; int s,t; int next;}a[400001];int b[5001];int edge;int p;int q[400001],d[400001];inline void add(int s,int t,int f){ a[edge].next=head[s]; head[s]=edge; a[edge].s=s; a[edge].t=t; a[edge].f=f;}int dis[5001],dis2[5001];bool v[5001];inline void spfa(){ memset(dis,127/3,sizeof(dis)); memset(dis2,127/3,sizeof(dis2)); memset(v,false,sizeof(v)); int l=1,r=0; r++; q[r]=1; dis[1]=0; //dis2[1]=0; v[1]=true; while(l<=r) { int d=q[l]; v[d]=false; int i; for(i=head[d];i!=0;i=a[i].next) { int t=a[i].t; if(dis[d]+a[i].f<dis[t]) { dis2[t]=min(dis[t],dis2[d]+a[i].f); dis[t]=dis[d]+a[i].f; if(!v[t]) { r++; q[r]=t; v[t]=true; } } else if(dis[d]+a[i].f==dis[t]&&dis2[d]+a[i].f<dis2[t]) { dis2[t]=dis2[d]+a[i].f; if(!v[t]) { r++; q[r]=t; v[t]=true; } } else if(dis[d]+a[i].f>dis[t]&&dis[d]+a[i].f<dis2[t]) { dis2[t]=dis[d]+a[i].f; if(!v[t]) { r++; q[r]=t; v[t]=true; } } } l++; }}int main(){ int n,m; scanf("%d%d",&n,&m); int i; int s,t,f; for(i=1;i<=m;i++) { scanf("%d%d%d",&s,&t,&f); edge++; add(s,t,f); edge++; add(t,s,f); } spfa(); printf("%d\n",dis2[n]); return 0;}
0 0
- BZOJ 1726: [Usaco2006 Nov]Roadblocks第二短路
- bzoj 1726: [Usaco2006 Nov]Roadblocks第二短路
- BZOJ 1726 [Usaco2006 Nov]Roadblocks第二短路
- 1726: [Usaco2006 Nov]Roadblocks第二短路
- bzoj 1726: [Usaco2006 Nov]Roadblocks第二短路(A*第k短路)
- [Bzoj1726][Usaco2006 Nov]Roadblocks第二短路
- bzoj1726【Usaco2006 Nov】Roadblocks第二短路
- bzoj1726: [Usaco2006 Nov]Roadblocks第二短路
- 【bzoj1726】【Usaco2006 Nov】【Roadblocks第二短路】【spfa】
- bzoj1726 [Usaco2006 Nov]Roadblocks第二短路
- 【bzoj1726】 Usaco2006 Nov Roadblocks第二短路 次短路模板
- [Usaco2006 Nov]Roadblocks 次短路
- [Usaco2006 Nov]Roadblocks第二短路 堆优化的dijkstra
- bzoj1726 [Usaco2006 Nov]Roadblocks第二短路(spfa)
- 【BZOJ 1726】【Usaco 2006 Nov】Roadblocks 次短路
- 【POJ3255】【洛谷2865】[Usaco2006 Nov]路障Roadblocks(次短路)
- BZOJ1726 POJ3255 P2865: [Usaco2006 Nov]Roadblocks路障
- bzoj 1726 第二短路
- 嵌入式MCU多功能的USART--基本串口功能
- android示例之SQLite基础——事务
- Distinct Subsequences leetcode
- Cocos2dx 利用ClippingNode 做遮罩
- sizeof计算二维数组长度的问题
- bzoj 1726: [Usaco2006 Nov]Roadblocks第二短路
- B树索引
- [题目] Section 1.2 Milking Cows(USACO)
- 是什么影响了你的速度?802.11g
- KMP
- bzoj 1029: [JSOI2007]建筑抢修
- java 字节流与字符流的区别
- JavaScript语言核心(一)——类型、变量和值
- Ubuntu 下安装hadoop