题目链接

n个点m条路, 每条路有权值,  给出起点和终点, 求一条路使得权值最小。可以使路过的路中, k条路的权值忽略。

其实就是多一维, 具体看代码

#include<bits/stdc++.h>
using namespace std;
#define pb(x) push_back(x)
#define ll long long
#define mk(x, y) make_pair(x, y)
#define lson l, m, rt<<1
#define mem(a) memset(a, 0, sizeof(a))
#define rson m+1, r, rt<<1|1
#define mem1(a) memset(a, -1, sizeof(a))
#define mem2(a) memset(a, 0x3f, sizeof(a))
#define rep(i, a, n) for(int i = a; i<n; i++)
#define ull unsigned long long
typedef pair<int, int> pll;
const double PI = acos(-1.0);
const double eps = 1e-8;
const int mod = 1e9+7;
const int inf = 1061109567;
const int dir[][2] = { {-1, 0}, {1, 0}, {0, -1}, {0, 1} };
const int maxn = 5e4+5;
int dis[12][60005], in[12][60005], num, head[maxn*2];
int n, m, k, s, t;
struct edge
{int to, nextt, w;
}e[maxn*2];
struct node
{int u, x;node(){}node(int u, int x):u(u),x(x){}
};
void init() {mem1(head);num = 0;
}
void add(int u, int v, int w) {e[num].to = v;e[num].nextt = head[u];e[num].w = w;head[u] = num++;
}
queue <node> q;
int dij() {mem2(dis);q.push(node(s, 0));dis[0][s] = 0;in[0][s] = 1;while(!q.empty()) {node tmp = q.front(); q.pop();int u = tmp.u, x = tmp.x;in[x][u] = 0;for(int i = head[u]; ~i; i = e[i].nextt) {int v = e[i].to;if(dis[x][v]>dis[x][u]+e[i].w) {dis[x][v] = dis[x][u]+e[i].w;if(!in[x][v]) {in[x][v] = 1;q.push(node(v, x));}}}if(x<k) {x++;for(int i = head[u]; ~i; i = e[i].nextt) {int v = e[i].to;if(dis[x][v]>dis[x-1][u]) {dis[x][v] = dis[x-1][u];if(!in[x][v]) {in[x][v] = 1;q.push(node(v, x));}}}}}int ans = inf;for(int i = 0; i<=k; i++)ans = min(ans, dis[i][t]);return ans;
}
int main()
{int x, y, z;cin>>n>>m>>k>>s>>t;init();while(m--) {scanf("%d%d%d", &x, &y, &z);add(x, y, z);add(y, x, z);}int ans = dij();cout<<ans<<endl;return 0;
}

转载于:https://www.cnblogs.com/yohaha/p/5068070.html

bzoj 2763: [JLOI2011]飞行路线 分层图相关推荐

  1. bzoj 2763 [JLOI2011]飞行路线——分层图

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2763 分层图两种方法的练习. 1.把图分成k+1层,本层去上面一层的边免费.但空间时间都不算 ...

  2. 洛谷 - P4568 [JLOI2011]飞行路线(分层图最短路)

    题目链接:点击查看 题目大意:给出一张图,每条边都有权值,现在要求从点st到达点ed,沿途中可以让k条边的边权免费,现在求最短路 题目分析:分层图经典模板问题,直接套板子就行了,最后记得对于数组d的每 ...

  3. BZOJ 2763: [JLOI2011]飞行路线 spfa dp

    题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=2763 题解: d[x][kk]表示从s到x用了kk次免费机会的最少花费. 代码: #in ...

  4. BZOJ 2763: [JLOI2011]飞行路线 【SPFA】

    Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的价格.Al ...

  5. BZOJ 2763[JLOI2011]飞行路线 - 最短路

    描述 给出一个无向图, 出发地$s$和目的地$t$, 让你求出不计算 任意$K$条边权值 的最短路 题解 刚开始我是用记忆化搜索记录状态$F_{i, k}$, 表示从出发地出发 到第$i$个城市, 还 ...

  6. 【Dijsktra priority!】分层图

    这里先直接上一个题解,下午应该会有自己的打法! /* 首先看一个问题: 在你的强力援助下,PCY 成功完成了之前的所有任务,他觉得,现在正是出去浪的大好时光.于是,他来到高速公路上,找到一辆摩的前往几 ...

  7. bzoj2763 [JLOI2011]飞行路线

    2763: [JLOI2011]飞行路线 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 3216  Solved: 1230 [Submit][St ...

  8. 洛谷 P4568 [JLOI2011] 飞行路线(分层图最短路)

    [JLOI2011] 飞行路线 题目描述 Alice 和 Bob 现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在 n n n 个城市设有业务,设这些城市分别标记为 0 0 0 到 ...

  9. 【HYSBZ - 2763 】飞行路线 (分层图最短路,最短路dp)

    题干: Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的价 ...

  10. Bzoj 2662: [BeiJing wc2012]冻结 dijkstra,堆,分层图,最短路

    2662: [BeiJing wc2012]冻结 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 647  Solved: 348 [Submit][S ...

最新文章

  1. 找不到或无法加载主类 org.jivesoftware.openfire.starter.ServerStarter
  2. 一秒回到P图前:Adobe发布“反向PS”利器,知道你修过哪里,还帮你修回去
  3. Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
  4. servlet-新建maven报错:web.xml is missing and <failOnMissingWebXml> is set to true
  5. 设计模式(1)--简单工厂模式、策略模式
  6. python初学者_面向初学者的20种重要的Python技巧
  7. java的Scanner类
  8. 【恋上数据结构】希尔排序
  9. 东大14春学期《计算机应用基础》在线作业1,东大18春学期《计算机应用基础》在线作业...
  10. 关于linux下的iptables 的浅析命令和了解
  11. Linux--进程组 作业 会话 守护(精灵)进程
  12. atca背板_Xilinx公司展示ATCA背板10 Gbps串行信号传输
  13. Java随笔记 - BIO Socket 编程实例
  14. grub4dos引导Linux失败,Grub4dos引导Ubuntu
  15. 语音交互的基本概念和设计实践
  16. CSS Reset(样式重置)
  17. SiT5721:±5~±8ppb超高精度Stratum 3E恒温数控振荡器DCOCXO,1-60MHz
  18. 对逻辑斯蒂回归的一些细节剖析
  19. 新中新身份证读卡器开发问题
  20. java date 日期格式_如何将JAVA DATE类型的日期 转换成指定格式类型的 (如:YYYY-MM-DD) 的 DATE类型数据?...

热门文章

  1. 中计算正方形面积的方法_风管及管道部件设计过程中常用的计算方法
  2. ValueError: This sheet is too large! Your sheet size
  3. python中tolist()功能
  4. R-CNN学习笔记4:Fast R-CNN
  5. 书接上文——python实现感知分类器模型分类过程动态可视化
  6. python实现判断给定列表是否存在重复元素,且索引差小于k
  7. PRD之道:4个撰写PRD的关键思路
  8. 2021-08-08 mysql索引
  9. python中showinfo什么意思_在Python中Windows – 在startupinfo中使用wShowWindow的Popen不会影响显示...
  10. kubernetes视频教程笔记 (12)-容器探针