【luogu P2939 [USACO09FEB]改造路Revamping Trails】 题解
题目链接:https://www.luogu.org/problemnew/show/P2939
本来说是双倍经验题,跟飞行路线一样的,结果我飞行路线拿deque优化SPFA过了这里过不了了。
所以多学一种优先队列优化。
#include <queue>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define ll long long
using namespace std;
const ll maxn = 200000 + 10;
const ll inf = 2147483647;
inline ll read()
{ll k=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}while(isdigit(c)){k=(k<<1)+(k<<3)+c-48;c=getchar();}return k*f;
}
ll n, m, k, s, end, dis[maxn][30];
bool vis[maxn][30];
struct edge{ll from, len, to, next;
}e[maxn<<2];
ll head[maxn], cnt = 0;
struct que{ll a, b;
};
struct cmp{bool operator ()(que &x, que &y){return dis[x.a][x.b] > dis[y.a][y.b]; }
};
priority_queue<que, vector<que>, cmp> q;
void add(ll u, ll v, ll w)
{e[++cnt].from = u;e[cnt].to = v;e[cnt].len = w;e[cnt].next = head[u]; head[u] = cnt;
}
void SPFA()
{memset(dis, 127, sizeof(dis));memset(vis, 0, sizeof(vis)); q.push((que){s,0});dis[s][0] = 0;vis[s][0] = 1;while(!q.empty()){que now = q.top(); q.pop();vis[now.a][now.b] = 0;for(ll i = head[now.a]; i != -1; i = e[i].next){if(dis[e[i].to][now.b] > dis[now.a][now.b] + e[i].len){dis[e[i].to][now.b] = dis[now.a][now.b] + e[i].len;if(vis[e[i].to][now.b] == 0){vis[e[i].to][now.b] = 1;q.push((que){e[i].to, now.b});}}if(now.b + 1 <= k){if(dis[e[i].to][now.b + 1] > dis[now.a][now.b]){dis[e[i].to][now.b + 1] = dis[now.a][now.b];if(vis[e[i].to][now.b + 1] == 0){vis[e[i].to][now.b + 1] = 1;q.push((que){e[i].to, now.b + 1});}}}}}
}
int main()
{memset(head, -1, sizeof(head));n = read(); m = read(); k = read();s = 1, end = n;for(ll i = 1; i <= m; i++){ll u, v, w;u = read(); v = read(); w = read();add(u, v, w); add(v, u, w);}SPFA();printf("%lld",dis[end][k]);return 0;
}
转载于:https://www.cnblogs.com/MisakaAzusa/p/9332180.html
【luogu P2939 [USACO09FEB]改造路Revamping Trails】 题解相关推荐
- 洛谷 P2939 [USACO09FEB]改造路Revamping Trails
洛谷 P2939 [USACO09FEB]改造路Revamping Trails Description 约翰一共有N)个牧场.由M条布满尘埃的小径连接.小径可 以双向通行.每天早上约翰从牧场1出发到 ...
- 洛谷P2939 [USACO09FEB]改造路Revamping Trails(最短路)
题目描述 Farmer John dutifully checks on the cows every day. He traverses some of the M (1 <= M <= ...
- P4568 [JLOI2011]飞行路线 P2939 [USACO09FEB]改造路Revamping Trails
分层图最短路系列题目 分层图最短路的题目有一个非常容易看得出的把戏:让k条边免费. 对于能让\(k\)条边免费的数据,我们开\(k+1\)层图.每一层图内部正常连点,不同的是前一层的图的起点连一条权值 ...
- [USACO09FEB]改造路Revamping Trails 分层最短路 Dijkstra BZOJ 1579
题意翻译 约翰一共有N)个牧场.由M条布满尘埃的小径连接.小径可 以双向通行.每天早上约翰从牧场1出发到牧场N去给奶牛检查身体. 通过每条小径都需要消耗一定的时间.约翰打算升级其中K条小径,使之成为高 ...
- 【Luogu】P1613 跑路
[Luogu]P1613 跑路 一.题目 题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资 ...
- [JLOI 2011]飞行路线[USACO 09FEB]Revamping Trails
Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并 ...
- luogu P1549 棋盘问题(2) 题解
luogu P1549 棋盘问题(2) 题解 题目描述 在\(N * N\)的棋盘上\((1≤N≤10)\),填入\(1,2,-,N^2\)共\(N^2\)个数,使得任意两个相邻的数之和为素数. 例如 ...
- 【分层图最短路】P2939 [USACO09FEB]Revamping Trails G
将整个dijkstra的操作加上一维k就行了 注意dis赋极大值的时候要从0-k都赋上! 代码 #include<bits/stdc++.h> using namespace std; t ...
- [Dijstra] 洛谷 P2939 改造路
题意翻译 约翰一共有N)个牧场.由M条布满尘埃的小径连接.小径可 以双向通行.每天早上约翰从牧场1出发到牧场N去给奶牛检查身体. 通过每条小径都需要消耗一定的时间.约翰打算升级其中K条小径,使之成为高 ...
- [USACO09FEB]Revamping Trails G
题意: 约翰一共有 N 个牧场.由 MM 条布满尘埃的小径连接.小径可以双向通行.每天早上约翰从牧场 1 出发到牧场 N 去给奶牛检查身体. 通过每条小径都需要消耗一定的时间.约翰打算升级其中 K 条 ...
最新文章
- “我只需一个周末就可以构建出这个应用!”
- 地平线新征程!官网焕然一新,二代自动驾驶芯片势已蓄,只待发
- 具有OpenCV和相似度测量的视频输入
- 安卓rpg绅士游戏资源_海贼无双3(动作游戏)——电脑安卓单机游戏下载资源分享...
- 使用skin++进行MFC界面美化范例
- java代码审计文章集合
- 【Mysql】之基础sql语句模板
- web安全day40:最新版OpenVAS的安装配置
- Template Power
- go在windows下编译linux的运行的代码
- 携手英特尔,百度开放云将提供更强悍云服务
- Rust 1.7.0 匹配器 match 的简单介绍和使用
- mac系统spss26软件下载及安装教程
- MATLAB怎么输入无穷小,matlab如何输入代码
- MTK刷机工具Flash_Tool部分4032错误解决办法
- LeetCode 刷题: Fizz Buzz
- 苏州园林年卡 办理与使用 附 苏州园林门票价格
- 服务器挖矿病毒的排查过程
- 计算物体自由下落的距离
- 中望CAD的lisp编辑器_中望CAD 2020中文版
热门文章
- R语言基于S3的面向对象编程
- java JVM常见的四大异常及处理方案
- Anyoffice -HTML5大赛 悦心(基于H5开发安卓音乐app)-项目总结
- C#语句之while语句
- Mongodb 3.2 Manual阅读笔记:CH9 存储
- vbs中使用select case条件语句,case中匹配项多于一个时,提示:type mismathc/ 800A000D...
- Linux下mySQL数据库斥地手艺-1
- Web服务器 之 关于Apache (httpd)服务器防DDOS模块mod_evasive的使用说明
- eclipse中无法新建Android工程 出现问题:Plug-in org.eclipse.ajdt.ui was unable to load
- servlet无法自动在web.xml中配置