博客
关于我
【分层图最短路】P4568 [JLOI2011]飞行路线
阅读量:284 次
发布时间:2019-03-03

本文共 1389 字,大约阅读时间需要 4 分钟。

将免费乘坐的机会看做两个层之间的边,对于读入的每天一条边,都再k层内建边,以及跨层建边

然后就可以跑dijkstra

注意:最后的答案可能不在dis[t+k*n]上,因为最优解可能没有使用k次免费的机会,所以需要统计一下每层t位置的dis值,取最小即可

 

代码

#include
using 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;}

 

转载地址:http://tcwm.baihongyu.com/

你可能感兴趣的文章
vue项目中报/sockjs-node/info错误
查看>>
【公众】localhost:8080找不到tomcat猫界面,并且报404错误原因
查看>>
如何处理前任程序员留下的代码
查看>>
来自投资银行的20个Java面试题
查看>>
20个非常有用的Java程序片段
查看>>
Dubbo架构设计详解
查看>>
如何锻炼JAVA编程思路?
查看>>
Mybatis源码分析(四):属性接口之objectFactory
查看>>
全面了解 Nginx 主要应用场景
查看>>
如何解决秒杀的性能问题和超卖的讨论
查看>>
【系统日志】log4j配置学习总结
查看>>
2019年1月已到,Java 8 要收费了吗?
查看>>
最全的spring面试题和答案
查看>>
CentOS 8 已下载ntpdate 却无法使用crond进行时间同步
查看>>
坑啊,Spring的BeanUtils是这样用的,为啥会出bug?
查看>>
Mybatis的这些坑!把我坑惨了!
查看>>
在 IntelliJ IDEA 中使用 Git,太方便了!
查看>>
一个女生不主动联系你还有机会吗?
查看>>
7 个显著提升编码效率的IntelliJ IDEA必备插件
查看>>
企业API接口设计之token、timestamp、sign具体实现
查看>>