luogu P1462 通往奥格瑞玛的道路

嘟嘟嘟

 

这道题的题面相当的迷,我看了半天都没懂。最后看了题解的解释才懂。

他是这么个意思:对于所有能活着走到终点的路径,输出每一条路径中过路费最多的城市的最小值。

 

那么自然想到二分过路费,然后用dijkstra或spfa判断是否存在一条路径,该路径上的每一个城市的过路费都小于当前二分值mid。用dijkstra复杂度就是O(nlog2n),spfa玄学,但也能过。

  1 #include<cstdio>
  2 #include<iostream>
  3 #include<cmath>
  4 #include<algorithm>
  5 #include<cstring>
  6 #include<cstdlib>
  7 #include<cctype>
  8 #include<vector>
  9 #include<stack>
 10 #include<queue>
 11 using namespace std;
 12 #define enter puts("") 
 13 #define space putchar(' ')
 14 #define Mem(a, x) memset(a, x, sizeof(a))
 15 #define rg register
 16 typedef long long ll;
 17 typedef double db;
 18 const int INF = 0x3f3f3f3f;
 19 const db eps = 1e-8;
 20 const int maxn = 1e4 + 5;
 21 const int maxe = 5e4 + 5;
 22 inline ll read()
 23 {
 24   ll ans = 0;
 25   char ch = getchar(), last = ' ';
 26   while(!isdigit(ch)) last = ch, ch = getchar();
 27   while(isdigit(ch)) ans = (ans << 1) + (ans << 3) + ch - '0', ch = getchar();
 28   if(last == '-') ans = -ans;
 29   return ans;
 30 }
 31 inline void write(ll x)
 32 {
 33   if(x < 0) x = -x, putchar('-');
 34   if(x >= 10) write(x / 10);
 35   putchar(x % 10 + '0');
 36 }
 37 
 38 int n, m;
 39 ll b, a[maxn], Max = 0;
 40 
 41 struct Edge
 42 {
 43   int nxt, to; ll w;
 44 }e[maxe << 1];
 45 int head[maxn], ecnt = -1;
 46 void addEdge(int x, int y, ll w)
 47 {
 48   e[++ecnt] = (Edge){head[x], y, w};
 49   head[x] = ecnt;
 50 }
 51 
 52 #define pr pair<ll, int>
 53 #define mp make_pair
 54 ll dis[maxn];
 55 bool in[maxn];
 56 priority_queue<pr, vector<pr>, greater<pr> > q;
 57 bool dijkstra(ll x)
 58 {
 59   for(int i = 1; i <= n; ++i) dis[i] = (ll)INF * (ll)INF, in[i] = 0;
 60   dis[1] = 0;
 61   while(!q.empty()) q.pop();
 62   q.push(mp(dis[1], 1));
 63   while(!q.empty())
 64     {
 65       int now = q.top().second; q.pop();
 66       if(in[now]) continue;
 67       in[now] = 1;
 68       for(int i = head[now]; i != -1; i = e[i].nxt)
 69     {
 70       if(dis[e[i].to] > dis[now] + e[i].w && dis[now] + e[i].w < b && a[e[i].to] <= x)
 71         {
 72           if(e[i].to == n) return 1;
 73           dis[e[i].to] = dis[now] + e[i].w;
 74           q.push(mp(dis[e[i].to], e[i].to));
 75         }
 76     }
 77     }
 78   return 0;
 79 }
 80 
 81 int main()
 82 {
 83   Mem(head, -1);
 84   n = read(); m = read(); b = read();
 85   for(int i = 1; i <= n; ++i) a[i] = read();
 86   for(int i = 1; i <= m; ++i)
 87     {
 88       int x = read(), y = read(); ll w = read();
 89       if(w > b) continue;
 90       Max = max(Max, w);
 91       addEdge(x, y, w); addEdge(y, x, w);
 92     }
 93   ll L = 0, R = (ll)INF * (ll)INF;
 94   while(L < R)
 95     {
 96       ll mid = (L + R) >> 1;
 97       if(dijkstra(mid)) R = mid;
 98       else L = mid + 1;
 99     }
100   if(L == (ll)INF * (ll)INF) puts("AFK");
101   else write(L), enter;
102   return 0;
103 }
View Code

 

转载于:https://www.cnblogs.com/mrclr/p/9877264.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365151.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树莓派 红灯不亮_请问我的树莓派烧了系统后板子只有红灯亮,而act绿灯不亮,并且网口不插网线两个灯都是微微亮,请问?...

错误已找出&#xff0c;是镜像文件的问题。如果你的情况跟我下面的情况一样&#xff0c;可以把镜像重新下载一遍。以下是原回答&#xff1a;我的也是&#xff0c;买的3b。第一次烧录系统是成功的&#xff0c;TF卡插入之后&#xff0c;上电&#xff0c;power红灯亮&#xff0c;A…

Maven私服(Nexus)搭建总结

因为工作需要&#xff0c;第一次搭建Maven私服&#xff0c;使用的是目前最流行的Sonatype Nexus。搭建私服并不难&#xff0c;官网有很详细的说明&#xff0c;只需几个步骤即可搭建一个可用的私服&#xff0c;但因为公司系统环境&#xff08;测试&#xff09;的原因还是遇到几个…

Effeckt.css – CSS3 Transitions Animations 精妙应用

CSS3 不仅仅用作界面效果补充&#xff0c;还可以用来替换传统的一些界面实现&#xff0c;而且效果更酷。Effeckt.css 收集了众多精妙的 CSS3 Transitions & Animations 效果应用&#xff0c;例如&#xff1a;弹窗、按钮、导航、列表、页面切换等等。 您可能感兴趣的相关文章…

Java开发人员的5种工具

改善我们编写的Java代码的一种方法是使用最好的工具。 因此&#xff0c;让我们看看IDR Solutions建议使用的5种最常用的工具来帮助Java开发人员编写更好的代码。 查找错误 FindBugs是一个开放源代码程序&#xff0c;根据Lesser GNU Public许可的条款进行分发&#xff0c;并且使…

html如何让字体自动变色,CSS使文字部分变色

思路思路很简单&#xff0c;就是一个字写两遍&#xff0c;一个字只显示部分&#xff0c;不过不能真的把一个字写两遍。这里就需要用到CSS伪元素:before和:after&#xff0c;记住这个“伪元素”的“伪”字&#xff0c;表明它本来是不存在的。我们的方法就是在伪元素里放置相同的…

打开回收站

explorer.exe ::{645FF040-5081-101B-9F08-00AA002F954E}转载于:https://www.cnblogs.com/hshy/p/9877429.html

Codrops 教程:基于 CSS3 的精美模态窗口效果

Codrops 分享了漂亮的模态窗口效果实现方法&#xff0c;希望给前端开发人员提供一些创新显示对话框的启示。这个方案使用了触发按钮&#xff08;或任何的 HTML 元素&#xff09;&#xff0c;在点击的时候出现一个模态窗口&#xff0c;带有简单的过渡&#xff08;或动画&#xf…

html5录像功能限制时间,HTML5拍照和摄像机功能实战详解

开篇最近在做一个chrome app的云相机应用&#xff0c;应用包括拍照、摄像、保存照片视频、上传文件等等核心功能&#xff0c;其中涉及到很多HTML5对媒体流相关的API。写这篇文章的目的&#xff0c;其一是总结梳理知识点&#xff0c;最重要是希望对有相关需求的读者提供一些指导…

选择Vert.x的3个理由

Vert.x是用于JVM的轻量级高性能应用程序平台 现代Web应用程序和移动客户端的兴起重新定义了Web服务器的期望。 Node.js是第一个识别范式转换并提供解决方案的技术。 应用程序平台Vert.x借鉴了Node.js的一些创新&#xff0c;并使其在JVM上可用&#xff0c;将新鲜的想法与最复杂…

spring和mybatis的整合开发(基于MapperScannerConfigurer的整合开发(适用于复杂项目,接口较多的情况))...

在实际项目中&#xff0c;Dao层会包含很多接口&#xff0c;这样会导致spring配置文件过于臃肿。这时就需要采用扫描包的形式来配置mybaits中的映射器。 采用MapperScannerConfigurer来实现。 MapperScannerConfigurer类在spring配置文件中可以配置以下几个属性&#xff1a; 1.b…

页面加载前执行函数

window.onpageshow function(){ var token gg.core.cookie.getValue("token"); console.log(token); if(token ""||token null){ window.location login.html; return; }};转载于:https://www.cnblogs.com/tuhazi/p/987825…

表格对角线两边打字_表格斜线一分为二怎么打字(excel斜杠分割表格打字)

在整理表格的时候&#xff0c;相信许多朋友都会涉及到表格斜线的制作。比如单斜线和双斜线来区分不同维度项目。下面我们就来学习一下&#xff0c;如何通过Excel快速来添加我们的表格斜线。案例一&#xff1a;两步快速制作单表格单斜线第一步&#xff1a;首先在单元格中依次输入…

FROONT – 超棒的可视化响应式网页设计工具

FROONT 是一个基于 Web 的设计工具&#xff0c;在浏览器中运行&#xff0c;使得各类可视化设计的人员都能进行响应式的网页设计&#xff0c;即使是那些没有任何编码技能的设计师。FROONT 使得响应式网页设计能够可视化操作&#xff0c;能够在浏览器中使用直观的拖放工具进行设计…

avalon.js 转义html,avalon模块的内建适配器

text bindings&#xff0c;第一个传参将强制转换为字符串&#xff0c;假值为""&#xff0c;然后变成目标节点的innerText!今天的天气为&#xff1a; $.require("ready,more/avalon", function(){var viewModel {myMessage: $.observable()};$.applyBindin…

参数化的JUnit测试

有时&#xff0c;您会遇到一个问题&#xff0c;就是尖叫使用“参数化”测试&#xff0c;而不是多次复制/粘贴相同的方法。 测试方法基本上是相同的&#xff0c;唯一改变的是传入的数据。在这种情况下&#xff0c;请考虑创建一个利用JUnit中的“ Parameterized ”类的测试用例。…

OO-第一单元总结

经过了前三次作业和两次实验的引导&#xff0c;我的编程思路在逐步从面向过程转向面向对象。也对面向对象有了初步的理解。虽然第一次实验由于自己没有及时完成导致没有提交过有些遗憾&#xff0c;但是第二次实验还是提交了几次的&#xff08;虽然由于时间原因并没有做好本地测…

kafka数据 落盘_Kafka数据可靠性保证三板斧-ACK/ISR/HW

点击上方蓝色字体&#xff0c;选择“设为星标”回复”资源“获取更多资源点击右侧关注&#xff0c;大数据开发领域最强公众号&#xff01;点击右侧关注&#xff0c;暴走大数据&#xff01;为保证producer发送的数据&#xff0c;能可靠的发送到指定的topic&#xff0c;topic的每…

2013年五大主流浏览器 HTML5 和 CSS3 兼容性大比拼

转眼又已过去了一年&#xff0c;在这一年里&#xff0c;Firefox 和 Chrome 在拼升级&#xff0c;版本号不断飙升&#xff1b;IE10 随着 Windows 8 在去年10月底正式发布&#xff0c;在 JavaScript 性能和对 HTML5 和 CSS3 的支持方面让人眼前一亮。这篇文章给大家带来《五大主流…

一句话引发的思考 - synchronized/super

https://blog.csdn.net/cool__wang/article/details/52459380#commentBox 转载于:https://www.cnblogs.com/rainydayfmb/p/9883864.html

计算机科学方向的会议或期刊,计算机顶会和顶刊_计算机顶会_顶会

《计算机应用研究》正刊和增刊什么区别&#xff0c;是不是增刊不是正规的核心期刊&#xff0c;求...展开全部《计算机应用研究》是核心期刊&#xff0c;其增刊一年只出版一或两期&#xff0c;和月刊一样具有相同复的正式出版刊号。正刊和增刊的区别如下&#xff1a;1、目的用途…