P4568 [JLOI2011] 飞行路线
1.928. 尽量减少恶意软件的传播 II2.P1339 [USACO09OCT] Heat Wave G3.P4779 【模板】单源最短路径(标准版)4.P1550 [USACO08OCT] Watering Hole G
5.P4568 [JLOI2011] 飞行路线
6.P3956 [NOIP2017 普及组] 棋盘7.单词 Play on Words8.P7771 【模板】欧拉路径9.P2024 [NOI2001] 食物链10.P1525 [NOIP2010 提高组] 关押罪犯11.P2573 [SCOI2012] 滑雪12.E. Count Paths13.P1351 [NOIP2014 提高组] 联合权值题解
分层图最短路模板题
code
#include<bits/stdc++.h> using namespace std; struct Node{ int way,key,value; bool operator >(const Node &a)const{ return value>a.value; } }; const int N=1e4+5; const int M=1e5+5; const int MAX=5e8; int head[N],Next[M],to[M],w[M],vis[N][12],dis[N][12]; int n,m,k,cnt=1,s,t; void initial(){ for (int i=0;i<n;i++){ for (int j=0;j<=k;j++){ dis[i][j]=MAX; vis[i][j]=0; } } } void build(int a,int b,int c){ Next[cnt]=head[a]; to[cnt]=b; w[cnt]=c; head[a]=cnt++; } int main(){ cin>>n>>m>>k; cin>>s>>t; initial(); for (int i=1;i<=m;i++) { int a,b,c; cin>>a>>b>>c; build(a,b,c); build(b,a,c); } priority_queue<Node,vector<Node>,greater<Node> > que; Node x; x.way=s;x.value=0;x.key=0; dis[s][0]=0; que.push(x); while (!que.empty()){ x=que.top();que.pop(); if (vis[x.way][x.key]) continue; vis[x.way][x.key]=1; if (x.way==t) { cout<<x.value<<endl; break; } for (int i=head[x.way];i>0;i=Next[i]){ if (x.key<k){ if (!vis[to[i]][x.key+1] && x.value<dis[to[i]][x.key+1]){ dis[to[i]][x.key+1]=x.value; Node y; y.way=to[i];y.value=x.value;y.key=x.key+1; que.push(y); } } if (!vis[to[i]][x.key] && x.value+w[i]<dis[to[i]][x.key]){ dis[to[i]][x.key]=x.value+w[i]; Node y; y.way=to[i];y.value=x.value+w[i];y.key=x.key; que.push(y); } } } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通