BZOJ 2763 飞行路线(分层图最短路)题解
题意:中文题意不解释...
思路:分层图最短路,我们再开一维用来表示当前用了多少次免费次数,dis[i][j]就表示到达i点用了j次免费的最短路,有点DP的感觉。
当个模板用
参考:分层图最短路
代码:
#include<cstdio>
#include<set>
#include<cmath>
#include<queue>
#include<vector>
#include<cstring>
#include<algorithm>
#include<iostream>
#define ll long long
using namespace std;
const int maxn = +;
const int INF = 0x3f3f3f3f;
int dis[maxn][]; //走到i已经免费j次最短路
int vis[maxn][];
int n,m,k;
struct node{
int to,val;
node(int _t = ,int _v = ):to(_t),val(_v){}
};
vector<node> G[maxn];
void spfa(int st){
memset(dis,INF,sizeof(dis));
memset(vis,,sizeof(vis));
queue<int> q;
while(!q.empty()) q.pop();
vis[st][] = ;
dis[st][] = ;
q.push(st),q.push(); //点和当前使用免费次数
while(!q.empty()){
int u = q.front();q.pop();
int j = q.front();q.pop(); //j是用了几次免费
for(int i = ;i < G[u].size();i++){
int v = G[u][i].to;
if(dis[u][j] + G[u][i].val < dis[v][j]){ //假如不免费
dis[v][j] = dis[u][j] + G[u][i].val;
if(!vis[v][j]){
vis[v][j] = ;
q.push(v),q.push(j);
}
}
if(j < k && dis[u][j] < dis[v][j + ]){ //免费
dis[v][j + ] = dis[u][j];
if(!vis[v][j + ]){
vis[v][j + ] = ;
q.push(v),q.push(j + );
}
}
}
vis[u][j] = ;
}
}
int main(){
while(scanf("%d%d%d",&n,&m,&k) != EOF){
for(int i = ;i <= n;i++) G[i].clear();
int s,t;
scanf("%d%d",&s,&t);
++s,++t;
for(int i = ;i < m;i++){
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
++u,++v;
G[u].push_back(node(v,w));
G[v].push_back(node(u,w));
}
spfa(s);
int ans = INF;
for(int i = ;i <= k;i++){
ans = min(ans,dis[t][i]);
}
printf("%d\n",ans);
}
return ;
}
BZOJ 2763 飞行路线(分层图最短路)题解的更多相关文章
- bzoj2763 [JLOI]飞行路线 分层图最短路
问题描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的 ...
- P4568 飞行路线 分层图最短路
P4568 飞行路线 分层图最短路 分层图最短路 问题模型 求最短路时,可有\(k\)次更改边权(减为0) 思路 在普通求\(Dijkstra\)基础上,\(dis[x][j]\)多开一维\(j\)以 ...
- [JLOI2011]飞行路线 分层图最短路
题目描述: Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在nn个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一 ...
- P4568 [JLOI2011]飞行路线 分层图最短路
思路:裸的分层图最短路 提交:1次 题解: 如思路 代码: #include<cstdio> #include<iostream> #include<cstring> ...
- BZOJ2763: [JLOI2011]飞行路线(分层图 最短路)
题意 题目链接 Sol 分层图+最短路 建\(k+1\)层图,对于边\((u, v, w)\),首先在本层内连边权为\(w\)的无向边,再各向下一层对应的节点连边权为\(0\)的有向边 如果是取最大最 ...
- 【bzoj2763】[JLOI2011]飞行路线 分层图最短路
题目描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的 ...
- bzoj 2763: [JLOI2011]飞行路线 -- 分层图最短路
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MB Description Alice和Bob现在要乘飞机旅行,他们选择了一家相 ...
- BZOJ2763[JLOI2011]飞行路线 [分层图最短路]
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2523 Solved: 946[Submit][Statu ...
- [JLOI2011]飞行路线 (分层图,最短路)
题目链接 Solution 建立 \(k+1\) 层图跑 \(Dijkstra\) 就好了. Code #include<bits/stdc++.h> #define ll long lo ...
- [bzoj2763][JLOI2011]飞行路线——分层图最短路
水题.不多说什么. #include <bits/stdc++.h> using namespace std; const int maxn = 10010; const int maxk ...
随机推荐
- 图论之最短路径(2)——Bellman-Ford算法
继续最短路径!说说Bellman—Ford算法 思路:假设起点为s,图中有n个顶点和m个边,那么它到任一点(比如i)的最短路径 最多可以有n-1条(没有回路就是n-1条):因为最短路径中不可能包含回路 ...
- 深入理解javascript原型和闭包 摘要
一切(引用类型)都是对象,对象是属性的集合 对象都是通过函数创建的 隐式原型 Instanceof的判断队则是:沿着A的__proto__这条线来找,同时沿着B的prototype这条线来找,如果两条 ...
- Windows Phone 自定义一个启动画面
1.新建一个UserControl <UserControl x:Class="LoadingPage.PopupSplash" xmlns="http://sch ...
- CEIL与FLOOR
SQL> SELECT 666.88,CEIL(666.88),FLOOR(666.88) FROM dual; 666.88 CEIL(666.88) FLOOR(666.88)---- ...
- jsp实现文件下载的代码(转载)
Java代码 OutputStream out=response.getOutputStream(); byte by[]=new byte[500]; File fileLoad=new Fil ...
- Flum入门必备知识
1.flume概念 flume是分布式的,可靠的,高可用的,用于对不同来源的大量的日志数据进行有效收集.聚集和移动,并以集中式的数据存储的系统. flume目前是apache的一个顶级项目. flum ...
- IFS二次开发03——Item
在TFS 中把每个文件夹被抽象成“ItemSet”或“Item”,相对于父级目录来讲就是Item ,相对于子级目录来讲就是“ItemSet”.每个文件都被抽象成“Item”. //连接TFS stri ...
- Jmeter,常见参数 vars、prev、ctx 、props 类的api--beanshell
http://www.cnblogs.com/fnng/p/5827577.html---------jmeter 性能测试 jmeter常见参数 vars.prev.ctx .props 类的api ...
- Python开发【项目】:生产环境下实时统计网站访问日志信息
日志实时分析系统 生产环境下有需求:要每搁五分钟统计下这段时间内的网站访问量.UV.独立IP等信息,用直观的数据表格表现出来 环境描述: 网站为Nginx服务,系统每日凌晨会对日志进行分割,拷贝到其他 ...
- NGINX:漫谈优化
优化那些事儿 生产环境下网站做前期的优化肯定是比不可少的,简单来说就是用同等条件的硬件资源,处理更多的网站业务,大程度提供网站业务处理能力:前辈留下的实战经验可都是财富,好多坑只有踩过才知道痛,下面就 ...