bzoj1579 [Usaco2009 Feb]Revamping Trails 道路升级 分层图dij+heap
2017-05-23 16:08
399 查看
明显裸的分层图,居然还TM要dij+heap,白打半天spfa。。。差评(。
不过熟悉了一下dij+heap好评)。
不过熟悉了一下dij+heap好评)。
#include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<cstdlib> #include<vector> #include<queue> #define inf 1000000000 #define fo(i,a,b) for(int i=a;i<=b;i++) #define fd(i,a,b) for(int i=a;i>=b;i--) #define pa pair<int,int> using namespace std; typedef long long ll; int tot,n,m,k; const int N=2e5+5; int head ,next ,go ,val ; int dis [25]; bool vis [25]; inline void add(int x,int y,int z) { go[++tot]=y; val[tot]=z; next[tot]=head[x]; head[x]=tot; } inline void dij() { priority_queue<pa,vector<pa>,greater<pa> >q; fo(i,1,n) fo(j,0,k)dis[i][j]=inf; memset(vis,0,sizeof(vis)); dis[1][0]=0; q.push(make_pair(0,1)); while(!q.empty()) { int x=q.top().second; q.pop(); int z=x/(n+1);x=x%(n+1); if (vis[x][z])continue; vis[x][z]=1; for(int i=head[x];i;i=next[i]) { int v; if (dis[x][z]+val[i]<dis[v=go[i]][z]) { dis[v][z]=dis[x][z]+val[i]; q.push(make_pair(dis[v][z],z*(n+1)+v)); } if (z==k)continue; if (dis[x][z]<dis[v][z+1]) { dis[v][z+1]=dis[x][z]; q.push(make_pair(dis[v][z+1],(z+1)*(n+1)+v)); } } } } int main() { scanf("%d%d%d",&n,&m,&k); fo(i,1,m) { int x,y,z; scanf("%d%d%d",&x,&y,&z); add(x,y,z); add(y,x,z); } dij(); printf("%d\n",dis [k]); return 0; }
相关文章推荐
- BZOJ 1579: [Usaco2009 Feb]Revamping Trails 道路升级 分层图最短路
- bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级——分层图+dijkstra
- Bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级 dijkstra,堆,分层图
- bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级【分层图+spfa】
- bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级 -- 分层图最短路
- BZOJ_1579_[Usaco2009 Feb]Revamping Trails 道路升级_分层图最短路
- 【bzoj1579】[Usaco2009 Feb]Revamping Trails 道路升级 分层图最短路
- [Usaco2009 Feb]Revamping Trails 道路升级 BZOJ1579
- 分层图最短路 【bzoj1579】[Usaco2009 Feb]Revamping Trails 道路升级
- [BZOJ1579] [Usaco2009 Feb]Revamping Trails 道路升级(分层图最短路 + 堆优化dijk)
- BZOJ1579 [Usaco2009 Feb]Revamping Trails 道路升级
- 【bzoj1579】[Usaco2009 Feb]Revamping Trails 道路升级
- BZOJ1579: [Usaco2009 Feb]Revamping Trails 道路升级
- BZOJ 1579: [Usaco2009 Feb]Revamping Trails 道路升级( 最短路 )
- bzoj1579 [Usaco2009 Feb]Revamping Trails 道路升级(分层图最短路)
- 【BZOJ】1579: [Usaco2009 Feb]Revamping Trails 道路升级
- [BZOJ1579][Usaco2009 Feb]Revamping Trails 道路升级(二维最短路问题)
- bzoj1579 [Usaco2009 Feb]Revamping Trails 道路升级
- bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级
- 【BZOJ 1579】 1579: [Usaco2009 Feb]Revamping Trails 道路升级 (最短路)