洛谷P1462 通往奥格瑞玛的道路 二分答案+最短路SPFA
洛谷P1462 通往奥格瑞玛的道路
二分答案+最短路SPFA
二分交费最多的一次的钱数
然后只将符合要求的边加入图中
如果到终点的最短路大于等于血量 或者直接起点不能到达终点
那么说明不符合要求 需要加大答案
时间复杂度 (log答案)* Ek
需要注意如果本来就不能到达
那么直接输出AFK
1 #include <bits/stdc++.h> 2 #define LL long long 3 #define For(i,j,k) for(int i=j;i<=k;i++) 4 using namespace std ; 5 6 const int N = 10011 , M = 50011 ; 7 struct node{ 8 LL to,pre,val ; 9 }e[M*2]; 10 struct edge{ 11 LL x,y,val ; 12 }beg[M]; 13 LL n,m,b,cnt,point[N],head[N],mx,blood,dist[N] ; 14 bool visit[N] ; 15 queue<LL> Q ; 16 17 inline LL read() 18 { 19 LL x = 0 , f = 1 ; 20 char ch = getchar() ; 21 while(ch<'0'||ch>'9') { if(ch=='-') f = -1 ; ch = getchar() ; } 22 while(ch>='0'&&ch<='9') { x = x * 10+ch-48 ; ch = getchar() ; } 23 return x * f ; 24 } 25 26 inline void add(int x,int y,int val) 27 { 28 e[cnt].to = y ; 29 e[cnt].pre = head[x] ; 30 e[cnt].val = val ; 31 head[x] = cnt++ ; 32 } 33 34 inline bool check( int mid ) 35 { 36 LL u,v ; 37 For(i,0,n) head[i] = -1,dist[i] = (1LL<<62) ; 38 cnt = 0 ; 39 For(i,1,m) { 40 if( point[beg[ i ].x] > mid ) continue ; 41 if( point[beg[ i ].y] > mid ) continue ; 42 add( beg[ i ].x,beg[ i ].y,beg[ i ].val ) ; 43 add( beg[ i ].y,beg[ i ].x,beg[ i ].val ) ; 44 } 45 while(!Q.empty()) Q.pop() ; 46 Q.push(1) ; dist[ 1 ] = 0 ; visit[ 1 ] = 1 ; 47 while(!Q.empty()) { 48 u = Q.front() ; 49 Q.pop() ; 50 visit[u] = 0 ; 51 for(int i=head[u];~i;i=e[i].pre) { 52 v = e[ i ].to ; 53 if( dist[ u ] + e[ i ].val < dist[ v ] ) { 54 dist[ v ] = dist[ u ] + e[ i ].val ; 55 if( !visit[ v ] ) { 56 visit[ v ] = 1 ; 57 Q.push(v) ; 58 } 59 } 60 } 61 } 62 if( dist[n]>=blood || dist[n]==dist[0] ) return 0 ; // 血量不够 或者 不能到达 63 return 1 ; 64 } 65 66 inline void erfen() 67 { 68 LL l = 0 , r = mx+1,mid ; 69 while( l < r ) { 70 mid = ( l+r )/2 ; 71 if( check( mid ) ) 72 r = mid ; 73 else 74 l = mid+1 ; 75 } 76 if(r==mx+1) { 77 printf("AFK\n") ; 78 exit(0) ; 79 } 80 printf("%d\n",r) ; 81 } 82 83 int main() 84 { 85 n = read() ; m = read() ; blood = read() ; 86 For(i,1,n) point[ i ] = read(),mx = max(mx,point[ i ]) ; 87 For(i,1,m) { 88 beg[ i ].x = read() ; beg[ i ].y = read() ; beg[ i ].val = read() ; 89 } 90 erfen() ; 91 return 0 ; 92 }
转载于:https://www.cnblogs.com/third2333/p/7371874.html
洛谷P1462 通往奥格瑞玛的道路 二分答案+最短路SPFA相关推荐
- [洛谷1462 ]通往奥格瑞玛的道路---二分答案+spfa
题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目描述 在艾泽拉斯, ...
- 洛谷 P1462 通往奥格瑞玛的道路 Label: 最小化最大值 spfa (存多条边示例)
题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目描述 在艾泽拉斯, ...
- 洛谷P1462 通往奥格瑞玛的道路 题解
洛谷P1462 通往奥格瑞玛的道路 题解 题目链接:P1462 通往奥格瑞玛的道路 题意:在艾泽拉斯,有 nnn 个城市.编号为 1,2,3,-,n1,2,3,\ldots,n1,2,3,-,n . ...
- 洛谷P1462 通往奥格瑞玛的道路
题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量. 有一天他醒来后发现自己居然到了联盟的主城暴风城. 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛. 题目描述 在艾泽 ...
- 洛谷 P1462 通往奥格瑞玛的道路
Description 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 在艾泽拉 ...
- 洛谷1462 通往奥格瑞玛的道路 二分+spfa
题目链接: https://www.luogu.org/problem/show?pid=1462 题意: 题解: 二分法+最短路判定. 二分经过城市的最大费用w,然后判定:对于每一个费用大于w的城市 ...
- P1462 通往奥格瑞玛的道路(二分+dijkstra)
P1462 通往奥格瑞玛的道路https://www.luogu.com.cn/problem/P1462 一道很不错的题,考察了二分和最短路 #include <iostream> # ...
- 洛谷 1462 通往奥格瑞玛的道路
题目背景 Background 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛. ...
- P1462 通往奥格瑞玛的道路(二分 迪杰斯特拉 最短路 + spfa最短路算法)
题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目描述 在艾泽拉斯, ...
最新文章
- 2021年浙软夏令营预推免面经
- 通过自定义资源扩展Kubernetes
- flash中Stage,stage,root和this的区别用法
- linux安装tomcat Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
- CSS块元素水平垂直居中的实现技巧
- ArcGIS Server for JavaScript 3.3 的安装部署
- opc服务器组态文件已写保护_远程组态软件不仅方便了PLC无线远程监控,也大大降低了工程成本...
- centos7 centos-home 磁盘空间转移至centos-root下(磁盘空间不足,磁盘不足)
- iphone 微信下浏览器中数字去除下划线
- Home_W的几何题 (计算几何)
- Vijos1755 靶形数独 Sudoku NOIP2009 提高组 T4 舞蹈链 DLX
- 《java入门第一季》之面向对象(成员方法)
- mysql1.0.17.0安装教程_mysql 8.0.17 安装配置图文教程
- 记 * 恢复ext4硬盘的数据
- 几何公差学习笔记(一)-- 公差要素的概念
- Nature呼吁:应对21世纪的大规模流行病,各个学科必须联合起来
- 用python画满天星_Python用27行代码绘制一幅满天星
- Completed 403 FORBIDDEN 后端解决跨域问题
- 【转】 HMC与VIOS对新LPAR提供存储与网络虚拟化的支持
- 高德地图实现多天路线规划(途经点显示自定义内容)+轨迹回放(显示车牌)