[BZOJ2763][JLOI2011]飞行路线
2018-03-28 13:54
288 查看
bzoj
转移就是两种,使用免费或者是不使用。
相当于就是\(nk\)个点的最短路。
\(Dijkstra\)即可。
sol
很显然设\(f_{i,j}\)表示在\(i\)号点已经使用了\(j\)次免费的最小费用。转移就是两种,使用免费或者是不使用。
相当于就是\(nk\)个点的最短路。
\(Dijkstra\)即可。
code
#include<cstdio> #include<algorithm> #include<cstring> #include<queue> #define pii pair<int,int> #define mk make_pair using namespace std; int gi() { int x=0,w=1;char ch=getchar(); while ((ch<'0'||ch>'9')&&ch!='-') ch=getchar(); if (ch=='-') w=0,ch=getchar(); while (ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar(); return w?x:-x; } const int N = 2e5+5; int n,m,K,S,T,to ,nxt ,ww ,head ,cnt,dis ,vis ,ans=2e9; priority_queue<pii,vector<pii>,greater<pii> >Q; void link(int u,int v,int w) { to[++cnt]=v;nxt[cnt]=head[u];ww[cnt]=w; head[u]=cnt; } void dijkstra() { memset(dis,63,sizeof(dis)); dis[S]=0;Q.push(mk(0,S)); while (!Q.empty()) { int x=Q.top().second;Q.pop(); if (vis[x]) continue;vis[x]=1; int u=x%n,t=x/n; for (int e=head[u];e;e=nxt[e]) { int v=to[e]; if (dis[v+t*n]>dis[x]+ww[e]) dis[v+t*n]=dis[x]+ww[e],Q.push(mk(dis[v+t*n],v+t*n)); if (dis[v+(t+1)*n]>dis[x]&&t<K) dis[v+(t+1)*n]=dis[x],Q.push(mk(dis[v+(t+1)*n],v+(t+1)*n)); } } } int main() { n=gi();m=gi();K=gi();S=gi();T=gi(); for (int i=1;i<=m;++i) { int u=gi(),v=gi(),w=gi(); link(u,v,w);link(v,u,w); } dijkstra(); for (int i=0;i<=K;++i) ans=min(ans,dis[T+i*n]); printf("%d\n",ans);return 0; }
相关文章推荐
- 【JLOI2011】【BZOJ2763】飞行路线
- [BZOJ2763][JLOI2011]飞行路线
- (bzoj 2763 [JLOI2011]飞行路线)<分层图>
- Bzoj 2763: [JLOI2011]飞行路线 dijkstra,堆,最短路,分层图
- bzoj 2763: [JLOI2011]飞行路线
- bzoj 2763 [JLOI2011] 飞行路线 两维spfa
- bzoj 2763: [JLOI2011]飞行路线【分层图+spfa】
- BZOJ 2763: [JLOI2011]飞行路线(最短路)
- BZOJ 2763: [JLOI2011]飞行路线 分层图最短路
- BZOJ 2763: [JLOI2011]飞行路线(分层图最短路)
- BZOJ 2763 [JLOI2011]飞行路线
- 飞行路线 bzoj2763 jloi2011(SPFA+分层图)
- BZOJ 2763 JLOI2011 飞行路线 分层图+堆优化SPFA
- Bzoj 2763: [JLOI2011]飞行路线 拆点,分层图,最短路,SPFA
- [BZOJ 2763][JLOI 2011] 飞行路线
- bzoj2763 [JLOI2011]飞行路线
- BZOJ 2763 [JLOI2011]飞行路线
- BZOJ2763 [JLOI2011]飞行路线 【分层图 + 最短路】
- BZOJ 2763 [JLOI2011]飞行路线 - Dijkstra+分层图/DP
- 【bzoj2763】[JLOI2011]飞行路线