博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[JLOI2011]飞行路线 (分层图,最短路)
阅读量:5268 次
发布时间:2019-06-14

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

Solution

建立 \(k+1\) 层图跑 \(Dijkstra\) 就好了.

Code

#include
#define ll long longusing namespace std;const int maxn=200008;int n,m,k,s,t;struct sj{ int to; int next; int w;}a[maxn*10];int head[maxn],size;ll dis[maxn],dist[maxn];void add(int x,int y,int w){ a[++size].to=y; a[size].next=head[x]; head[x]=size; a[size].w=w;}int read(){ char ch=getchar(); int f=1,w=0; while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch<='9'&&ch>='0'){w=w*10+ch-'0';ch=getchar();} return f*w;}struct node { int u;ll d; bool operator <(const node& rhs) const { return d>rhs.d; }};inline void Dijkstra(){ memset(dis,127,sizeof(dis)); dis[s]=0; priority_queue
q; q.push((node){s,0}); while(!q.empty()) { node xx=q.top(); q.pop(); int u=xx.u,d=xx.d; if(d!=dis[u])continue; for(int i=head[u];i;i=a[i].next) { int tt=a[i].to,w=a[i].w; if(dis[u]+w

转载于:https://www.cnblogs.com/Kv-Stalin/p/9537832.html

你可能感兴趣的文章
MongoDB-JAVA-Driver 3.2版本常用代码全整理(2) - 查询
查看>>
NPOI处理Word文本中上下角标
查看>>
Android笔记 Handler
查看>>
如何阅读大型前端开源项目的源码(转)
查看>>
java.util.Arrays类详解
查看>>
idea搭建tocmat
查看>>
NYOJ-626-intersection set(二分查找)
查看>>
项目管理之路(1):初步踏入项目管理
查看>>
Java 中 静态方法与非静态方法的区别
查看>>
echarts饼图显示百分比
查看>>
JMS消息
查看>>
Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台
查看>>
php上传文件及头像预览
查看>>
大四java实习生的一些经历
查看>>
线程池的概念
查看>>
Oracle_Statspack性能诊断工具
查看>>
转获取sql维护的表关系
查看>>
Java 序列化
查看>>
Java 时间处理实例
查看>>
Java 多线程编程
查看>>