[JLOI2011]飞行路线 分层图最短路
2014-03-05 21:10
197 查看
裸的分层图最短路,SPFA+SLF解决 bitset数组下标开反 RE了半天。。。。
#include <iostream> #include <cstdio> #include <algorithm> #include <deque> #include <utility> #include <bitset> #define MAXN 210000 #define FR first #define SC second #define MP make_pair #define INF 100000000 using namespace std; bitset<11> vis[MAXN]; typedef pair<int,int > PII; deque<PII> q; int dis[MAXN][11]; int n,m,s,t,lim,cnt; struct node { int p,next,w; }edge[MAXN]; int head[MAXN]; void insert(int a,int b,int c) { edge[++cnt].p=b; edge[cnt].next=head[a]; edge[cnt].w=c; head[a]=cnt; } void SPFA() { for (int i=1;i<=n;++i) for (int j=0;j<=lim;++j) dis[i][j]=INF; dis[s][0]=0; for (int i=1;i<=n;++i) vis[i].reset(); vis[s][0]=true; q.push_back(MP(s,0)); while (!q.empty()) { int u=q.front().FR,time=q.front().SC; q.pop_front(); vis[u][time]=false; for (int k=head[u];k;k=edge[k].next) { int v=edge[k].p; for (int op=0;op<=1;++op) { if (op+time>lim) break; int tmp; if (op) tmp=0; else tmp=edge[k].w; if (tmp+dis[u][time]<dis[v][time+op]) { dis[v][time+op]=tmp+dis[u][time]; if (!vis[v][time+op]) { vis[v][time+op]=true; if (q.empty()||dis[v][time+op]<dis[q.front().FR][q.front().SC]) q.push_front(MP(v,time+op)); else q.push_back(MP(v,time+op)); } } } } } } int main() { cin>>n>>m>>lim>>s>>t; s++,t++; int x,y,z; for (int i=1;i<=m;++i) { scanf("%d%d%d",&x,&y,&z); ++x,++y; insert(x,y,z); insert(y,x,z); } SPFA(); int ans=INF; for (int i=0;i<=lim;++i) ans=min(ans,dis[t][i]); cout<<ans<<endl; return 0; }
相关文章推荐
- [bzoj2763][JLOI2011]飞行路线——分层图最短路
- Bzoj 2763: [JLOI2011]飞行路线 拆点,分层图,最短路,SPFA
- [BZOJ2763][JLOI2011][分层图最短路]飞行路线
- [JLOI 2011]飞行路线&[USACO 09FEB]Revamping Trails
- 2763: [JLOI2011]飞行路线
- BZOJ2763: [JLOI2011]飞行路线
- 2763: [JLOI2011]飞行路线
- [JLOI2011]飞行路线
- BZOJ 2763 JLOI 2011 飞行路线 分层图+最短路
- 【BZOJ2763】【JLOI2011】飞行路线 分层图
- [BZOJ2763][JLOI2011]飞行路线
- 【bzoj 2763】2763: [JLOI2011]飞行路线 spfa二维
- 【bzoj2763】[JLOI2011]飞行路线 分层图最短路
- 【bzoj2763】 JLOI2011飞行路线 分层最短路
- bzoj 2763: [JLOI2011]飞行路线【分层图+spfa】
- 【bzoj2763】【JLOI2011】【飞行路线】【dp+spfa】
- bzoj2763 [JLOI2011]飞行路线 Dijkstra
- bzoj[JLOI2011]飞行路线
- 分层图,bzoj2763: [JLOI2011]飞行路线
- bzoj 2763 [JLOI2011]飞行路线