洛谷 P4568 [JLOI2011]飞行路线
题目描述###
Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的价格。
Alice和Bob现在要从一个城市沿着航线到达另一个城市,途中可以进行转机。航空公司对他们这次旅行也推出优惠,他们可以免费在最多k种航线上搭乘飞机。那么Alice和Bob这次出行最少花费多少?
输入输出格式
输入格式:
数据的第一行有三个整数,n,m,k,分别表示城市数,航线数和免费乘坐次数。
第二行有两个整数,s,t,分别表示他们出行的起点城市编号和终点城市编号。
接下来有m行,每行三个整数,a,b,c,表示存在一种航线,能从城市a到达城市b,或从城市b到达城市a,价格为c。
输出格式:
只有一行,包含一个整数,为最少花费。
输入输出样例
输入样例#1:
5 6 1
0 4
0 1 5
1 2 5
2 3 5
3 4 5
2 3 3
0 2 100
输出样例#1:
8
题解###
简单的最短路+dp 我竟然没有一遍切
dp[i][j]表示到编号为i时,用了j次免费机会的最少花费
转移十分显然
Code###
#include<bits/stdc++.h>
#define LL long long
#define RG register
using namespace std;
inline int gi() {
int f = 1, s = 0;
char c = getchar();
while (c != '-' && (c < '0' || c > '9')) c = getchar();
if (c == '-') f = -1, c = getchar();
while (c >= '0' && c <= '9') s = s*10+c-'0', c = getchar();
return f == 1 ? s : -s;
}
const int N = 10010, M = 50010;
struct node {
int to, next, w;
}g[M<<1];
int last[N], gl;
inline void add(int z, int y, int x) {
g[++gl] = (node) {y, last[x], z};
last[x] = gl;
g[++gl] = (node) {x, last[y], z};
last[y] = gl;
return ;
}
queue<int> q;
int f[N][15];
bool vis[N];
int main() {
int n = gi(), m = gi(), k = gi(), s = gi(), t = gi();
for (int i = 1; i <= m; i++) add(gi(), gi(), gi());
q.push(s);
memset(f, 127/3, sizeof(f));
f[s][0] = 0;
while (!q.empty()) {
int u = q.front();
q.pop();
for (int i = last[u]; i; i = g[i].next) {
int v = g[i].to;
for (int j = 0; j <= k; j++) {
if (j > 0 && f[v][j] > f[u][j-1]) {
f[v][j] = f[u][j-1];
if (!vis[v]) q.push(v), vis[v] = 1;
}
if (f[u][j] + g[i].w < f[v][j]) {
f[v][j] = f[u][j] + g[i].w;
if (!vis[v]) q.push(v), vis[v] = 1;
}
}
}
vis[u] = 0;
}
int ans = 2147483647;
for (int i = 0; i <= k; i++)
ans = min(ans, f[t][i]);
printf("%d\n", ans);
return 0;
}
洛谷 P4568 [JLOI2011]飞行路线的更多相关文章
- 洛谷 P4568 [JLOI2011]飞行路线 解题报告
P4568 [JLOI2011]飞行路线 题目描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在\(n\)个城市设有业务,设这些城市分别标记为0到\(n−1\ ...
- 洛谷 P4568 [JLOI2011]飞行路线 题解
P4568 [JLOI2011]飞行路线 题目描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在\(n\)个城市设有业务,设这些城市分别标记为\(0\)到\( ...
- [洛谷P4568][JLOI2011]飞行路线
题目大意:最短路,可以有$k$条边无费用 题解:分层图最短路,建成$k$层,层与层之间的边费用为$0$ 卡点:空间计算出错,建边写错 C++ Code: #include <cstdio> ...
- 洛谷 4568 [JLOI2011] 飞行路线
题目戳这里 一句话题意: 有n个点,m条边的有向图,最多可以把k条边变为0,求从起点到终点最短距离. Solution 首先看到这题目,感觉贼难,看起来像DP,貌似也有大佬这么做,但鉴于本蒟蒻思维能力 ...
- 【洛谷P4568】[JLOI2011]飞行路线
飞行路线 题目链接 今天上午模拟考试考了原题,然而数组开小了,爆了4个点. 据王♂强dalao说这是一道分层图SPFA的裸题 dis[i][j]表示到点i用k个医疗包的最小消耗,dis[u][j]+e ...
- 【洛谷 P4568】 [JLOI2011]飞行路线 (分层最短路)
题目链接 分层图最短路. 把每个点拆成\(k+1\)个点,表示总共有\(k+1\)层. 然后每层正常连边, 若\((u,v)\)有边,则把每一层的\(u\)和下一层的\(v\).每一层的\(v\)和下 ...
- 洛谷P4568 飞行路线
题目描述 \(Alice\)和\(Bob\)现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在\(n\)个城市设有业务,设这些城市分别标记为\(0\)到\(n−1\),一共有\(m\ ...
- 【luogu P4568 [JLOI2011]飞行路线】 题解
题目链接:https://www.luogu.org/problemnew/show/P4568 卡了一晚上,算是分层图最短路的模板.注意卡SPFA,所以我写了个SLF优化. 同时 AC400祭!~ ...
- luogu P4568 [JLOI2011]飞行路线
传送门 看到免费次数\(k\)最多只有10,可以考虑构建\(k+1\)层的分层图,即每一层正常连边,上下两层对应点连边权为0的单向边,最后对所有层里面的\(di_t\)取\(\max\)救星了 #in ...
随机推荐
- jquery中children()
- SpringMVC——拦截器
Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlerInterceptor接口 preHandle():这个方法在业务处理 ...
- 如何确定tabcontrol哪一页码是活跃页???
tabControl1.SelectedIndex属性 显示了现在显示的是哪一页码内的控件.
- (转)SQL Server上的一个奇怪的Deadlock及其分析方法
原文地址:http://blogs.msdn.com/b/apgcdsd/archive/2012/02/28/sql-server-deadlock.aspx 最近遇到了一个看上去很奇怪,分析起来很 ...
- 用maven将项目安装到本地仓库,为什么老是在默认仓库地址(C:\Users\userName\.m2\repository)
使用mvn clean install安装项目到本地的时候,在idea中配置好了本地仓库地址,见下图: 但是安装时,还是安装到了C:\Users\userName\.m2\repository路径下, ...
- GTA4下载和玩教程
侠盗猎车4中文版.rar: 但是下载安装之后总是在刚开始开车的时候跳转到人物界面卡在那里无法进行下去,解决办法: 1.新建一个commandline.txt文件复制以下内容进去 -novblank - ...
- telerik 值得学习 web mvc 桌面 控件大全
http://www.telerik.com http://www.dxper.net/forum-70-1.html http://www.dxper.net/forum.php
- C 可变参数的宏定义
宏定义 也能来可变参数..吼吼..方便好多.. #define T(x,y...) printf(x,##y); C99标准..这我也管不到.... 关键是那个 ... 和 ## 我也不推荐到首页.记 ...
- 【C#】CLR
CLR是如何工作的 借用维基百科上的一副图来描述CLR的运行流程: 从源代码到应用程序执行CLR主要做了以下工作: 将源代码编译成托管模块 托管模块是一个标准的 32 位 Microsoft Wind ...
- day8学python 各种简单模板
各种简单模板 内容: 1.shelve模板 存储数据 2.shutil 模板 用作拷贝/删除/压缩文件(使用便捷) 3.hashlib 模板 加密文件 4.re模板 ================= ...