BZOJ2763: [JLOI2011]飞行路线
2016-12-29 12:11
323 查看
题目链接
(不要直接建分层图,spfa中用二维数组处理就好了。。偷个懒就T了QnQ)
【分析】
分层图spfa。(不要直接建分层图,spfa中用二维数组处理就好了。。偷个懒就T了QnQ)
【代码】
#include <cstdio> #include <iostream> #include <queue> #include <vector> #include <algorithm> #include <cstring> #include <cmath> #include <stack> #define N 11005 #define M 110005 #define INF 1000000000 using namespace std; typedef long long ll; typedef pair<ll,ll> pa; int read() { int x=0,f=1;char ch=getchar(); while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();} while(isdigit(ch)){x=x*10+ch-'0';ch=getchar();} return x*f; } int n,m,K,cnt,S,T; int b[M],p ,nextedge[M],w[M]; int dis [15]; bool Flag [15]; void Add(int x,int y,int z) { cnt++; b[cnt]=y; nextedge[cnt]=p[x]; p[x]=cnt; w[cnt]=z; } void Anode(int x,int y,int z){ Add(x,y,z);Add(y,x,z); } void Input_Init() { n=read(),m=read(),K=read(); S=read(),T=read(); for(int i=1;i<=m;i++) { static int x,y,z; x=read(),y=read(),z=read(); Anode(x,y,z); } } void spfa() { queue<pa>q; for(int i=0;i<n;i++) for(int j=0;j<=K;j++) dis[i][j]=INF; q.push(pa(S,0));dis[S][0]=0; while(!q.empty()) { pa k=q.front();q.pop();Flag[k.first][k.second]=0; for(int i=p[k.first];i;i=nextedge[i]) { int v=b[i]; if(dis[v][k.second]>dis[k.first][k.second]+w[i]) { dis[v][k.second]=dis[k.first][k.second]+w[i]; if(!Flag[v][k.second]) { Flag[v][k.second]=1; q.push(pa(v,k.second)); } } if(k.second<K) { if(dis[v][k.second+1]>dis[k.first][k.second]) { dis[v][k.second+1]=dis[k.first][k.second]; if(!Flag[v][k.second+1]) { Flag[v][k.second+1]=1; q.push(pa(v,k.second+1)); } } } } } printf("%d\n",dis[T][K]); } int main() { Input_Init(); spfa(); return 0; }
相关文章推荐
- BZOJ 2763: [JLOI2011]飞行路线(分层图最短路)
- BZOJ[2763][JLOI2011]飞行路线 spfa
- bzoj2763[JLOI2011]飞行路线 分层图最短路
- BZOJ 2763: [JLOI2011]飞行路线(最短路)
- |BZOJ 2763|最短路|[JLOI2011]飞行路线
- BZOJ2763: [JLOI2011]飞行路线
- [BZOJ2763][JLOI2011]飞行路线(分层图最短路)
- BZOJ 2763 JLOI2011 飞行路线 分层图+堆优化SPFA
- 飞行路线 bzoj2763 jloi2011(SPFA+分层图)
- Bzoj 2763: [JLOI2011]飞行路线 拆点,分层图,最短路,SPFA
- 【bzoj2763】【JLOI2011】【飞行路线】【dp+spfa】
- 【bzoj2763】【JLOI2011】飞行路线
- 【bzoj 2763】2763: [JLOI2011]飞行路线 spfa二维
- 【JLOI2011】【bzoj2763】飞行路线 分层图最短路
- 分层图+最短路算法 BZOJ 2763: [JLOI2011]飞行路线
- bzoj 2763: [JLOI2011]飞行路线 分层图最短路
- bzoj 2763: [JLOI2011]飞行路线
- bzoj 2763: [JLOI2011]飞行路线
- bzoj 2763: [JLOI2011]飞行路线
- 分层图,bzoj2763: [JLOI2011]飞行路线