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 ...
随机推荐
- Nodejs Web模块( readFile 根据请求跳转到响应html )
index.js 根据请求的路径pathname,返回响应的页面. var http = require('http'); var fs = require('fs'); var url = requ ...
- ExcelUtil工具类
import com.google.common.base.Strings;import com.jianwu.util.excel.annotation.ExcelAttribute;import ...
- R测试向量是否相等
> x<-1:3 > typeof(x) [1] "integer" > y<-c(1,3,4) > typeof(y) [1] "d ...
- postgresql数据库创建、修改、删除
一.数据库创建 语法: Command: CREATE DATABASEDescription: create a new databaseSyntax:CREATE DATABASE nam ...
- javascript飞机大战-----003创建英雄机
/* 英雄机:因为英雄机只有一辆所以不需要用构造函数 */ var Hero = { //初始图片 self:null, //初始left left:0, //初始top top:0, //生命值 l ...
- spring-boot集成redis
application.properties #redis 配置 # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redi ...
- C++ Websites
C++ Websites C++ 推荐网站 1.cprogramming.com 2.cppreference.com 3.cplusplus.com 4.Boost C++ Library
- PL/SQL编程基础(二):变量的声明、赋值、(赋值、连接、关系、逻辑)运算符
变量的声明.赋值.运算符 1.声明并使用变量 变量可以在声明时赋值,也可以先定义后赋值: 使用%TYPE与%ROWTYPE可以根据已有类型定义变量. PL/SQL是一种强类型的编程语言,所有的变量都必 ...
- 数字签名中公钥和私钥是什么?对称加密与非对称加密,以及RSA的原理
http://baijiahao.baidu.com/s?id=1581684919791448393&wfr=spider&for=pc https://blog.csdn.net/ ...
- [Luogu4331][Baltic2004]数字序列
原题请见<左偏树的特点及其应用>BY 广东省中山市第一中学 黄源河 luogu 题意 给出序列\(a[1...n]\),要求构造一个不下降序列\(b[1...n]\)使得\(\sum_{i ...