洛谷1462 通往奥格瑞玛的道路 最短路&&二分
SPFA和二分的使用
跑一下最短路看看能不能回到奥格瑞玛,二分收费最多的点
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
#define maxn 10005
#define maxm 50005
#define inf 2000000000 int n,m,b,cnt,ans;
int c[maxn],dis[maxn];
int head[maxm];
bool vis[maxn];
struct edge{
int next,to,w;
}e[maxm<<];
void insert(int u,int v,int k){
cnt++;
e[cnt].next=head[u];e[cnt].to=v;e[cnt].w=k;
head[u]=cnt;
}
bool spfa(int x){
queue<int> q;
memset(vis,,sizeof vis);
memset(dis,0x3f,sizeof dis);
vis[]=;dis[]=;
q.push();
while(!q.empty()){
int now=q.front();
q.pop();vis[now]=;
for(int i=head[now];i;i=e[i].next){
int k=e[i].to;
if(c[k]>x)continue;
if(dis[k]>dis[now]+e[i].w){
dis[k]=dis[now]+e[i].w;
if(!vis[k]){
vis[k]=;
q.push(k);
}
}
}
}
if(b-dis[n]<=||dis[n]==inf)return ;
return ;
}
int main(){
int l=,r=;
scanf("%d%d%d",&n,&m,&b);
for(int i=;i<=n;i++){
scanf("%d",&c[i]);
r=max(r,c[i]);
}
int u,v,k;
for(int i=;i<=m;i++){
scanf("%d%d%d",&u,&v,&k);
insert(u,v,k);
insert(v,u,k);
}
if(spfa(inf)){
int mid=(l+r)>>;
while(l<=r){
if(spfa(mid)){
r=mid-;
ans=mid;
}
else l=mid+;
mid=(l+r)>>;
}
printf("%d\n",ans);
}
else printf("AFK\n");
return ;
}
洛谷1462 通往奥格瑞玛的道路 最短路&&二分的更多相关文章
- 洛谷P1462 通往奥格瑞玛的道路(二分+spfa,二分+Dijkstra)
洛谷P1462 通往奥格瑞玛的道路 二分费用. 用血量花费建图,用单源最短路判断 \(1\) 到 \(n\) 的最短路花费是否小于 \(b\) .二分时需要不断记录合法的 \(mid\) 值. 这里建 ...
- 洛谷 P1462 通往奥格瑞玛的道路 解题报告
P1462 通往奥格瑞玛的道路 题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡 ...
- 洛谷——P1462 通往奥格瑞玛的道路
P1462 通往奥格瑞玛的道路 题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡 ...
- 洛谷 P1462 通往奥格瑞玛的道路 题解
P1462 通往奥格瑞玛的道路 题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡 ...
- Luogu P1462 通往奥格瑞玛的道路(最短路+二分)
P1462 通往奥格瑞玛的道路 题面 题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己 ...
- 洛谷 P1462 通往奥格瑞玛的道路
洛谷 题意:要求在限定油耗内,求最小花费的最大值. 求最小值最大很容易想到二分答案.所以我们往二分的方向去想. 我们二分一个费用,然后要保证到终点时满足限定油耗,所以跑最短路. 不过松弛条件要改一下: ...
- P1462 通往奥格瑞玛的道路[最短路+二分+堆优化]
题目来源:洛谷 题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目描 ...
- 洛谷P1462 通往奥格瑞玛的道路 题解 最短路+二分答案
题目链接:https://www.luogu.com.cn/problem/P1462 题目大意: 有 \(n\) 个点 \(m\) 条边,每个点有一个点权,每个边有一个边权.求所有长度不超过 \(b ...
- 洛谷P1462通往奥格瑞玛的道路——二分答案最短路
题目:https://www.luogu.org/problemnew/show/P1462 最大值最小问题,二分答案. 代码如下: #include<iostream> #include ...
随机推荐
- 区间不相交&区间覆盖
//code by virtualtan 2018 寒7 区间不相交 #include <cstdio> #include <algorithm> #define MAXN 1 ...
- xBIM 基础16 IFC的空间层次结构
系列目录 [已更新最新开发文章,点击查看详细] 本篇介绍如何从文件中检索空间结构.IFC中的空间结构表示层次结构的嵌套结构,表示项目,站点,建筑物,楼层和空间.如果您查看IFC文档, 您会发现 ...
- Analysis of the Facebook.app for iOS
Analysis of the Facebook.app for iOS Posted Oct 18, 2016 Did you ever wonder why the Facebook.app fo ...
- js实现数组的去重
function filterRepat(arr){ if(Array.isArray(arr) && arr.length){ var arr = arr.filter(functi ...
- 《Unix环境高级编程》读书笔记 第7章-进程环境
1. main函数 int main( int argc, char *argv[] ); argc是命令行参数的数目,包括程序名在内 argv是指向参数的各个指针所构成的数组,即指针数组 当内核执行 ...
- CDR X6设计师的福利,3折特惠!
最新消息称,即日起CorelDRAW官方为回馈新老用户长期以来的支持,特别推出CorelDRAW X6降价活动.目前CorelDRAW X6售价仅为2399元,照这个价格,CDR 2017 会 ...
- (转)Java 虚拟机体系结构
来源:http://hxraid.iteye.com/blog/676235 众所周知,Java源代码被编译器编译成class文件.而并不是底层操作系统可以直接执行的二进制指令(比如Windows O ...
- Map和WeakMap的区别
个人总结:在一个变量作用域中,如果结束到作用域结尾 } 的话,map中的引用会被垃圾回收机制回收的是weakmap ,map中的引用不会被垃圾回收机制回收的是map. 强引用:只要引用存在,垃圾回收器 ...
- How Javascript works (Javascript工作原理) (六) WebAssembly 对比 JavaScript 及其使用场景
个人总结: 1.webassembly简介:WebAssembly是一种用于开发网络应用的高效,底层的字节码.允许在网络应用中使用除JavaScript的语言以外的语言(比如C,C++,Rust及其他 ...
- 【jQuery02】点击标题面板显示内容
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...