BZOJ2763: [JLOI2011]飞行路线(分层图 最短路)
题意
Sol
分层图+最短路
建\(k+1\)层图,对于边\((u, v, w)\),首先在本层内连边权为\(w\)的无向边,再各向下一层对应的节点连边权为\(0\)的有向边
如果是取最大最小值的话可以考虑二分答案+最短路
// luogu-judger-enable-o2
// luogu-judger-enable-o2
#include<bits/stdc++.h>
#define Pair pair<int, int>
#define MP make_pair
#define fi first
#define se second
using namespace std;
const int MAXN = 2e5 + 10;
inline int read() {
    char c = getchar(); int x = 0, f = 1;
    while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
    while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
    return x * f;
}
int N, M, K, S, T, TT, vis[MAXN], dis[MAXN];
vector<Pair> v[MAXN];
void AddEdge(int x, int y, int z, int f) {
    v[x].push_back(MP(y, z));
    if(f) v[y].push_back(MP(x, z));
}
void Dij(int s) {
    priority_queue<Pair> q; q.push(MP(0, s));
    memset(dis, 0x3f, sizeof(dis)); dis[s] = 0;
    while(!q.empty()) {
        if(vis[q.top().se]) {q.pop(); continue;}
        int p = q.top().se; q.pop(); vis[p] = 1;
        for(int i = 0; i < v[p].size(); i++) {
            int to = v[p][i].fi, w = v[p][i].se;
            if(dis[to] > dis[p] + w) dis[to] = dis[p] + w, q.push(MP(-dis[to], to));
        }
    }
}
int main() {
//	freopen("a.in", "r", stdin);
    N = read(); M = read(); K = read(); S = read() + 1; T = read() + 1; TT = N * (K + 1) + 1;
    for(int i = 1; i <= M; i++) {
        int u = read() + 1, v = read() + 1, w = read();
        for(int j = 0; j < K; j++) {
            AddEdge(j * N + u, j * N + v, w, 1);
            AddEdge(j * N + u, (j + 1) * N + v, 0, 0);
            AddEdge(j * N + v, (j + 1) * N + u, 0, 0);
        }
        AddEdge(N * K + u, N * K + v, w, 1);
    }
    for(int j = 0; j <= K; j++) AddEdge(j * N + T, TT, 0, 0);
    Dij(S);
    printf("%d", dis[TT]);
    return 0;
}
BZOJ2763: [JLOI2011]飞行路线(分层图 最短路)的更多相关文章
- BZOJ2763[JLOI2011]飞行路线 [分层图最短路]
		2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2523 Solved: 946[Submit][Statu ... 
- [bzoj2763][JLOI2011]飞行路线——分层图最短路
		水题.不多说什么. #include <bits/stdc++.h> using namespace std; const int maxn = 10010; const int maxk ... 
- bzoj2763 [JLOI]飞行路线 分层图最短路
		问题描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的 ... 
- bzoj2763: [JLOI2011]飞行路线(分层图spfa)
		2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3234 Solved: 1235[Submit][Stat ... 
- [JLOI2011]飞行路线 分层图最短路
		题目描述: Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在nn个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一 ... 
- P4568 [JLOI2011]飞行路线 分层图最短路
		思路:裸的分层图最短路 提交:1次 题解: 如思路 代码: #include<cstdio> #include<iostream> #include<cstring> ... 
- 【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]飞行路线——分层图
		题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2763 构建分层图. 代码如下: 写法1(空间略大)(时间很慢): #include<i ... 
随机推荐
- HTML-文本域属性设置
			1.设置文本域的字体 <TEXTAREA STYLE="font-size:9pt;font-family:verdana;color:#333333">输入内容< ... 
- sql查询字段中的值长度最大的记录
			SELECT max(length(字段)) FROM 表名; 
- 二分--POJ-3258
			POJ-3258,二分 题目 Description Every year the cows hold an event featuring a peculiar version of hopscot ... 
- x86/x64/AnyCPU之间的区别
			原文链接 http://blog.csdn.net/lordwish/article/details/52312015 x86操作系统 目标平台 程序类型 运行结果 x86 应用程序exe 在32位C ... 
- vue-cli项目启动遇到的坑
			利用 npm init webpack projectname 之后 切换到项目所在文件夹下,执行命令 npm install ,一直非常慢,卡在那里基本不动. 最后是利用cnpm 安装成功的. 转载 ... 
- Caused by java.lang.IllegalStateException Not allowed to start service Intent { cmp=com.x.x.x/.x.x.xService }: app is in background uid UidRecord问题原因分析(二)
			应用在适配Android 8.0以上系统时,会发现后台启动不了服务,会报出如下异常,并强退: Fatal Exception: java.lang.IllegalStateException Not ... 
- 【OpenCV-Python】-颜色空间转换
			OpenCV官方教程中文版 for Python,原文为段立辉翻译,感谢Linux公社www.linuxidc.com此文档为自学转述,如有侵权请联系本人 使用工具Python3.6使用包cv2,nu ... 
- Ubuntu 16.04安装SecureCRT替代XShell
			XShell应该是最强大的,在Ubuntu下只有SecureCRT能实现跨平台(Linux/Windows/Mac),并且可以实现Tab的功能等.当然,还有其它的类似PuTTY这些.Windows下建 ... 
- 案例20-页面使用redis缓存显示类别菜单
			1 准备工作 1 需要导入所需要的jar包. 2 启动windows版本的redis服务端 3 准备JedisUtils工具类的配置文件redis.properties redis.maxIdle= ... 
- jmeter(3)——录制
			其实自己之前做web功能自动化就接触过录制,不管是火狐浏览器的插件录制,还是QTP的录制,可能刚开始接触你会觉得录制很low,不过,时间长了,有时候录制也是很考验人的,更何况,不管是录制还是脚本,只要 ... 
