题目链接: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】 题解相关推荐

  1. 洛谷 P2939 [USACO09FEB]改造路Revamping Trails

    洛谷 P2939 [USACO09FEB]改造路Revamping Trails Description 约翰一共有N)个牧场.由M条布满尘埃的小径连接.小径可 以双向通行.每天早上约翰从牧场1出发到 ...

  2. 洛谷P2939 [USACO09FEB]改造路Revamping Trails(最短路)

    题目描述 Farmer John dutifully checks on the cows every day. He traverses some of the M (1 <= M <= ...

  3. P4568 [JLOI2011]飞行路线 P2939 [USACO09FEB]改造路Revamping Trails

    分层图最短路系列题目 分层图最短路的题目有一个非常容易看得出的把戏:让k条边免费. 对于能让\(k\)条边免费的数据,我们开\(k+1\)层图.每一层图内部正常连点,不同的是前一层的图的起点连一条权值 ...

  4. [USACO09FEB]改造路Revamping Trails 分层最短路 Dijkstra BZOJ 1579

    题意翻译 约翰一共有N)个牧场.由M条布满尘埃的小径连接.小径可 以双向通行.每天早上约翰从牧场1出发到牧场N去给奶牛检查身体. 通过每条小径都需要消耗一定的时间.约翰打算升级其中K条小径,使之成为高 ...

  5. 【Luogu】P1613 跑路

    [Luogu]P1613 跑路 一.题目 题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资 ...

  6. [JLOI 2011]飞行路线[USACO 09FEB]Revamping Trails

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

  7. luogu P1549 棋盘问题(2) 题解

    luogu P1549 棋盘问题(2) 题解 题目描述 在\(N * N\)的棋盘上\((1≤N≤10)\),填入\(1,2,-,N^2\)共\(N^2\)个数,使得任意两个相邻的数之和为素数. 例如 ...

  8. 【分层图最短路】P2939 [USACO09FEB]Revamping Trails G

    将整个dijkstra的操作加上一维k就行了 注意dis赋极大值的时候要从0-k都赋上! 代码 #include<bits/stdc++.h> using namespace std; t ...

  9. [Dijstra] 洛谷 P2939 改造路

    题意翻译 约翰一共有N)个牧场.由M条布满尘埃的小径连接.小径可 以双向通行.每天早上约翰从牧场1出发到牧场N去给奶牛检查身体. 通过每条小径都需要消耗一定的时间.约翰打算升级其中K条小径,使之成为高 ...

  10. [USACO09FEB]Revamping Trails G

    题意: 约翰一共有 N 个牧场.由 MM 条布满尘埃的小径连接.小径可以双向通行.每天早上约翰从牧场 1 出发到牧场 N 去给奶牛检查身体. 通过每条小径都需要消耗一定的时间.约翰打算升级其中 K 条 ...

最新文章

  1. “我只需一个周末就可以构建出这个应用!”
  2. 地平线新征程!官网焕然一新,二代自动驾驶芯片势已蓄,只待发
  3. 具有OpenCV和相似度测量的视频输入
  4. 安卓rpg绅士游戏资源_海贼无双3(动作游戏)——电脑安卓单机游戏下载资源分享...
  5. 使用skin++进行MFC界面美化范例
  6. java代码审计文章集合
  7. 【Mysql】之基础sql语句模板
  8. web安全day40:最新版OpenVAS的安装配置
  9. Template Power
  10. go在windows下编译linux的运行的代码
  11. 携手英特尔,百度开放云将提供更强悍云服务
  12. Rust 1.7.0 匹配器 match 的简单介绍和使用
  13. mac系统spss26软件下载及安装教程
  14. MATLAB怎么输入无穷小,matlab如何输入代码
  15. MTK刷机工具Flash_Tool部分4032错误解决办法
  16. LeetCode 刷题: Fizz Buzz
  17. 苏州园林年卡 办理与使用 附 苏州园林门票价格
  18. 服务器挖矿病毒的排查过程
  19. 计算物体自由下落的距离
  20. 中望CAD的lisp编辑器_中望CAD 2020中文版

热门文章

  1. R语言基于S3的面向对象编程
  2. java JVM常见的四大异常及处理方案
  3. Anyoffice -HTML5大赛 悦心(基于H5开发安卓音乐app)-项目总结
  4. C#语句之while语句
  5. Mongodb 3.2 Manual阅读笔记:CH9 存储
  6. vbs中使用select case条件语句,case中匹配项多于一个时,提示:type mismathc/ 800A000D...
  7. Linux下mySQL数据库斥地手艺-1
  8. Web服务器 之 关于Apache (httpd)服务器防DDOS模块mod_evasive的使用说明
  9. eclipse中无法新建Android工程 出现问题:Plug-in org.eclipse.ajdt.ui was unable to load
  10. servlet无法自动在web.xml中配置