飞行路线(BZOJ 2763)
题目描述
输入
输出
样例输入
0 4
0 1 5
1 2 5
2 3 5
3 4 5
2 3 3
0 2 100
样例输出
提示
对于30%的数据,2<=n<=50,1<=m<=300,k=0;
对于50%的数据,2<=n<=600,1<=m<=6000,0<=k<=1;
对于100%的数据,2<=n<=10000,1<=m<=50000,0<=k<=10.
/*
分层图最短路
建k+1层图,对于每条边都和它下一层图建一条边权为0的边,
然后进行优先队列优化的Dij
*/
#include<cstdio>
#include<iostream>
#include<queue>
#include<vector>
#include<cstring>
#define mk make_pair
#define pa pair<int,int>
#define M 2000010
using namespace std;
int n,m,k,s,t,num,head[M],dis[M],c[M];
int x[M],y[M],z[M],ans=0xfffffff;
priority_queue<pa,vector<pa>,greater<pa> >q;
bool f[M];
struct node
{
int u,v,pre,t;
};node e[M];
void add(int x,int y,int z)
{
for(int i=head[x];i;i=e[i].pre)
if(e[i].v==y)
{
e[i].t=min(e[i].t,z);
return;
}
num++;
e[num].u=x;
e[num].v=y;
e[num].t=z;
e[num].pre=head[x];
head[x]=num;
}
void Dij(int x)
{
memset(dis,/,sizeof(dis));
dis[x]=;q.push(mk(,x));
while(!q.empty())
{
int d=q.top().first;
int k=q.top().second;
q.pop();
if(f[k])continue;f[k]=;
for(int i=head[k];i;i=e[i].pre)
{
int v=e[i].v;
if(dis[v]>dis[k]+e[i].t)
{
dis[v]=dis[k]+e[i].t;
q.push(mk(dis[v],v));
}
}
}
}
int main()
{
scanf("%d%d%d%d%d",&n,&m,&k,&s,&t);
s++;t++;n=n*(k+);
for(int i=;i<=m;i++)
scanf("%d%d%d",&x[i],&y[i],&z[i]),
x[i]++,y[i]++;
for(int i=;i<=m;i++)
for(int j=;j<=k+;j++)
{
add((x[i]-)*(k+)+j,(y[i]-)*(k+)+j,z[i]);
add((y[i]-)*(k+)+j,(x[i]-)*(k+)+j,z[i]);
if(j<=k)
{
add((x[i]-)*(k+)+j,(y[i]-)*(k+)+j+,);
add((y[i]-)*(k+)+j,(x[i]-)*(k+)+j+,);
}
}
Dij((s-)*(k+)+);
for(int j=;j<=k+;j++)
ans=min(ans,dis[(t-)*(k+)+j]);
printf("%d",ans);
return ;
}
飞行路线(BZOJ 2763)的更多相关文章
- ACM-ICPC 2018 南京赛区网络预赛 L && BZOJ 2763 分层最短路
https://nanti.jisuanke.com/t/31001 题意 可以把k条边的权值变为0,求s到t的最短路 解析 分层最短路 我们建立k+1层图 层与层之间边权为0,i 向 i+1层转 ...
- 分层图+最短路算法 BZOJ 2763: [JLOI2011]飞行路线
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MB Description Alice和Bob现在要乘飞机旅行,他们选择了一家相 ...
- BZOJ 2763: [JLOI2011]飞行路线 最短路
2763: [JLOI2011]飞行路线 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...
- Bzoj 2763: [JLOI2011]飞行路线 dijkstra,堆,最短路,分层图
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1728 Solved: 649[Submit][Statu ...
- Bzoj 2763: [JLOI2011]飞行路线 拆点,分层图,最短路,SPFA
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1694 Solved: 635[Submit][Statu ...
- [BZOJ 2763][JLOI 2011] 飞行路线
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3203 Solved: 1223[Submit][Stat ...
- bzoj 2763: [JLOI2011]飞行路线 -- 分层图最短路
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MB Description Alice和Bob现在要乘飞机旅行,他们选择了一家相 ...
- BZOJ 2763: [JLOI2011]飞行路线 【分层图模板】
任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=2763 2763: [JLOI2011]飞行路线 Time Limit: 10 Sec M ...
- BZOJ 2763: [JLOI2011]飞行路线 spfa dp
题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=2763 题解: d[x][kk]表示从s到x用了kk次免费机会的最少花费. 代码: #in ...
- BZOJ 2763 飞行路线 BFS分层
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2763 题目大意: Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司 ...
随机推荐
- windows 查看某端口被占用情况
百度经验 http://jingyan.baidu.com/article/3c48dd34491d47e10be358b8.html 基本命令 netstat -ano
- IOS文件下载
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, ...
- Thrift入门及Java实例演示【转】
概述 Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++.Java.Python.PHP.Ruby.Erlang.Perl.Ha ...
- 更新centos系统的python版本
因今天安装一程序需要用到python高版本,所以升级来系统自带的python. 先查询下系统的python版本是多少. #python -V 显示出来的是2.4.3,太老了,现在升级到比较稳定的版本3 ...
- SQL Server中的事务日志管理的阶梯,级别1:事务日志概述
SQL Server中的事务日志管理的阶梯,级别1:事务日志概述 翻译:刘琼滨 谢雪妮 许雅莉 赖慧芳 级别1:事务日志概述 事务日志是一个文件,其中SQL服务器存储了所有与日志文件关联的数据库执行的 ...
- 50个Bootstrap扩展插件
Bootstap这个框架本身已经包含了开发网页的众多要素,包括了常用的工具以及扩展组件,如果你在开发页面时觉得在某些方面还不够的话,不妨看看最新收集的50个Bootstrap扩展插件,这些插件在我们平 ...
- Android(java)学习笔记174:服务(service)之混合方式开启服务
1. 前面我们已经讲过可以使用两种方式开启服务 startService----stopService: oncreate() ---> onstartCommand() ---& ...
- strict说明
- MySQL存储过程实现分页及变量的定义
delimiter是MySQL中的命令,这个命令与存储过程没什么关系. 其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了. 即改变输入结束符. 默认情况下,delimit ...
- iview tabs里面放入 i-switch 注意slot不是写在 props里面
iview tabs里面放入 i-switch 注意slot不是写在 props里面 <Tabs value="name1"> <TabPane :label=& ...