
【分层图最短路】P4568 [JLOI2011]飞行路线
发布日期:2021-05-06 16:51:18
浏览次数:10
分类:技术文章
本文共 1389 字,大约阅读时间需要 4 分钟。
将免费乘坐的机会看做两个层之间的边,对于读入的每天一条边,都再k层内建边,以及跨层建边
然后就可以跑dijkstra
注意:最后的答案可能不在dis[t+k*n]上,因为最优解可能没有使用k次免费的机会,所以需要统计一下每层t位置的dis值,取最小即可
代码
#includeusing namespace std;const int maxn=5e6+5;int n,m,k,s,t;int dis[maxn],vis[maxn],head[maxn],tot;struct edge{ int to,nxt,v;}e[maxn<<1];int read(){ char cc=getchar(); int x=0,f=1; while((cc<'0' || cc>'9') && cc!='-') cc=getchar(); if(cc=='-') f=-1,cc=getchar(); while(cc>='0' && cc<='9') { x=x*10+cc-'0'; cc=getchar(); } return x*f;}void add(int x,int y,int z){ e[++tot].nxt=head[x]; e[tot].to=y; e[tot].v=z; head[x]=tot;}priority_queue ,vector > ,greater > > q;void dijkstra(int x){ memset(dis,0x3f,sizeof(dis)); dis[x]=0; q.push(make_pair(0,s)); while(!q.empty()) { int u=q.top().second; q.pop(); if(!vis[u]) { vis[u]=1; for(int i=head[u];i;i=e[i].nxt) { int to=e[i].to; int v=e[i].v; if(dis[to]>dis[u]+v) { dis[to]=dis[u]+v; q.push(make_pair(dis[to],to)); } } } }}int main(){ freopen("a.in","r",stdin); freopen("a.out","w",stdout); n=read(); m=read(); k=read(); s=read(); t=read(); for(int i=1;i<=m;i++) { int x,y,z; x=read(); y=read(); z=read(); add(x,y,z); add(y,x,z); for(int j=1;j<=k;j++) { add(x+n*(j-1),y+n*j,0); add(y+n*(j-1),x+n*j,0); add(x+j*n,y+n*j,z); add(y+j*n,x+n*j,z); } } dijkstra(s); int ans=0x3f3f3f3f; for(int i=0;i<=k;i++) ans=min(ans,dis[t+i*n]); printf("%d\n",ans); return 0;}
发表评论
最新留言
不错!
[***.144.177.141]2025年03月15日 17时55分03秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
2019-02-28
浙大机器学习课程-8-支持向量机(原问题转化为对偶问题)
2019-02-28
渗透测试学习笔记之案例五
2019-02-28
两张图帮你更好理解git常用指令
2019-02-28
wxPython中TextCtrl的输入上限问题
2019-03-01
2021-ICPD昆明站-I Mr. Main and Windmills
2019-03-01
计时器模仿地球绕太阳圆周运动
2019-03-01
1144. The Missing Number (20)
2019-03-01
为什么阿里巴巴不建议在for循环中使用”+”进行字符串拼接
2019-03-01
Qt Creator编码
2019-03-01
【今日CV 计算机视觉论文速览 第97期】Tue, 9 Apr 2019
2019-03-01
第1讲 快速入门 《Kotlin 极简教程 》
2019-03-01
云计算-大数据-云安全高等教育改革示范教材
2019-03-01
使用MaxCompute进行数据质量核查
2019-03-01
JavaScript 自学手册(文档教程)
2019-03-01
Java语言特点与学习
2019-03-01
夜光精讲 Opentcs 三大算法(十三)调度算法
2019-03-01
BCGControlBar教程:应用向导
2019-03-01
MyEclipse教程:Web开发——部署并测试项目
2019-03-01