[LuoguP1462]通往奥格瑞玛的道路($SPFA+$二分)
#\(\mathcal{\color{red}{Description}}\)
有一个图,求其在\(1-N\)的最短路小于一个给定值下,点权最大值的最小值。
#\(\mathcal{\color{red}{Solution}}\)
\(emmm\)这个题也是几天前做的……正在填坑\(qwq\)。
这道题虽然在\(Luogu\)上显示是和\(\color{cyan}{A\ \ Link}\)一个难度的,但是要明显简单很多好不好……
正解的话,很显然要二分一个血量…… 因为二分(答案)是有套路的:
1、求最……的……(一般不可以静态求)
2、求什么就二分什么
3、 一般是反着推,就是用二分出的结果去推条件是否满足,或者状态是否合法
于是,二分交费,然后在\(check\)的时候,由于二分的是最大值,所以比二分的\(x\)大的就不走,小的可以走,以此为限制条件\(SPFA\),观察跑出来的最短路是否大于拥有的血量,大的话自然就不合法,小的话自然合法。然后就做完了\(qwq\)
#include <queue>
#include <cstdio>
#include <cstring>
#include <iostream>
#define ll long long
#define to(k) e[k].to
using namespace std ;
const int MAXN = 62050 ;
struct edge{
ll to, next, v ;
}e[MAXN << 1] ;
queue<ll> q ;
ll head[MAXN << 1], cnt, dist[MAXN], i, k, ct ;
ll base[MAXN], l, r, mid, a, b, c, N, M, K, vis[MAXN], now ;
inline void init(){
memset(dist, 0x3f, sizeof(dist)), memset(vis, 0, sizeof(vis)) ;
queue<ll> emt ; swap(q, emt), q.push(1), vis[1] = 1, dist[1] = 0 ;
}
inline bool check(ll x){
init() ;
while(!q.empty()){
now = q.front(), q.pop(), vis[now] = 0 ;
for(k = head[now]; k ; k = e[k].next){
if(base[to(k)] > x) continue ;
if(dist[to(k)] > dist[now] + e[k].v){
dist[to(k)] = dist[now] + e[k].v ;
if(!vis[to(k)]){
vis[to(k)] = 1 ;
q.push(to(k)) ;
}
}
}
}
if(dist[N] > K) return 0 ; return 1 ;
}
inline void add(int u, int v, int w){
e[++cnt].to = v, e[cnt].v = w ;
e[cnt].next = head[u], head[u] = cnt ;
}
int main(){
cin >> N >> M >> K ;
for(i = 1; i <= N; i ++) cin >> base[i] ;
for(i = 1; i <= M; i ++){
cin >> a >> b >> c ;
add(a, b, c), add(b, a, c) ;
}l = 0, r = 1000000000 ;
while(l < r){
mid = (l + r) >> 1 ;
if(check(mid)) r = mid ;
else l = mid + 1 ;
}
if(l == 1000000000) cout << "AFK" ;
else cout << l ;
}
幕后花絮:这个题我特别细心地判了\(-1\),结果让输出\(AFK\)……好吧人生就是这样的跌宕起伏\(ORZ\)……然后现在的我看二分答案就像我当年的我看快速幂一样,绝对不是不会,可以充分体现出我的“OI”思维没有多高……因为常人自然难以理解,\(Coder\)素质越高,理解起来越简单……现在的状态嘛…大概写出一份二分答案来问题不是很大,但是要做到稔熟于心,也还需要一段路要走啊\(qwq\)。
[LuoguP1462]通往奥格瑞玛的道路($SPFA+$二分)的更多相关文章
- luoguP1462通往奥格瑞玛的道路(二分答案+spfa)
题意 给出n个点m条边的无向图. 每条边有两个权值a,b; 问在保证从1到n的路径a权值和小于x时,路径上b权值最大值最小为多少. (n≤10000,m≤50000,x≤1000000000) 题解 ...
- [LuoguP1462]通往奥格瑞玛的道路
题目链接 题意简述:现在有一个图,每经过一个点就会交钱,走一条路就会扣血.在血量>0的前提下,要从1走到n点,并且要求路径上交钱的最大值最小. 解题思路:首先最大值最小,我们选择二分.目前有两个 ...
- 【洛谷】【二分答案+最短路】P1462 通往奥格瑞玛的道路
在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目背景 [题目描述:] 在艾泽 ...
- P1462 通往奥格瑞玛的道路
P1462 通往奥格瑞玛的道路 题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡 ...
- 最短路【洛谷P1462】 通往奥格瑞玛的道路
P1462 通往奥格瑞玛的道路 题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡 ...
- 洛谷——P1462 通往奥格瑞玛的道路
P1462 通往奥格瑞玛的道路 题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡 ...
- luogu P1462 通往奥格瑞玛的道路--spfa+二分答案
P1462 通往奥格瑞玛的道路 题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡 ...
- P1462 通往奥格瑞玛的道路(二分答案+最短路)
P1462 通往奥格瑞玛的道路 题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡 ...
- 洛谷P1462 通往奥格瑞玛的道路(二分+spfa,二分+Dijkstra)
洛谷P1462 通往奥格瑞玛的道路 二分费用. 用血量花费建图,用单源最短路判断 \(1\) 到 \(n\) 的最短路花费是否小于 \(b\) .二分时需要不断记录合法的 \(mid\) 值. 这里建 ...
- P1462 通往奥格瑞玛的道路【二分+Dij】
P1462 通往奥格瑞玛的道路 提交 29.89k 通过 6.88k 时间限制 1.00s 内存限制 125.00MB 题目提供者gconeice 难度提高+/省选- 历史分数100 提交记录 查看题 ...
随机推荐
- UOJ#410. 【IOI2018】会议
传送门 首先可以设 \(f[l][r]\) 表示 \([l,r]\) 的答案 设 \(x\) 为区间 \([l,r]\) 的最大值的位置,那么 \(f[l][r] = min(f[l][x-1]+h[ ...
- js-权威指南学习笔记17
第十七章 事件处理 1.事件处理程序或事件监听程序是处理或响应事件的函数. 2.事件对象是与特定事件相关且包含有关该事件详细信息的对象. 3.响应通过键盘改变焦点的表单元素在得到和失去焦点时会分别出发 ...
- 涉及到【分页】的table的请求模式
step:1 点击分页器的内容 trigger事件句柄 (pagination, filters, sorter) => {//或者(page, pageSize)等 this.props.on ...
- 文档类型、DOCTYPE切换和浏览器模式
DTD(文档类型定义)是一种机器可读的规则,它们定义XML或HTML的特定版本中允许有什么.不允许有什么.在解析网页时,浏览器将使用这些规则检查页面的有效性并且采取相应的措施.浏览器通过分析页面的DO ...
- 玩转Android拍摄功能
简单拍照与摄像 在富媒体开始流行之前,整个世界是一个灰暗且平淡无奇的地方.还记得Gopher吗?我或许不记得了.自从APP成为用户生活的一部分之后,这便给他们提供了一种方式可以来存放他们生活的细节.使 ...
- get_digits
# coding=utf-8# 一.def digits(n): list1 = [] for each in n: list1.append(each) return list1print(digi ...
- redis 持久化策略、aof配置、测试、手动持久化、aof文件体积优化
redis持久化策略 1.数据文件.rdb 2.更新日志.aof 设置aof 1.命令方式config set appendonly noconfig rewrite2.配置文件方式 redis持久化 ...
- ahjesus wp-autopost破解版,亲测可用
在funtion.php里 把fetchUrl 这个函数的判断去掉 直接执行判断为真的结果下面是修改后的函数 function fetchUrl($_var_22){ global $w ...
- mysql root更改远程登录
mysql> select user,host from mysql.user; +---------------+-------------+ | user | host | +------- ...
- [WSUS] [Windows 10 Upgrade 1607/1703] 升级出错,出现 0xC1800118 或者卡在下载中…… 0%后失败
1. 安装 KB3159706 ,并进行安装后维护操作:https://support.microsoft.com/en-us/help/3159706/update-enables-esd-decr ...