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,一经查实,立即删除!

相关文章

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;弹窗、按钮、导航、列表、页面切换等等。 您可能感兴趣的相关文章…

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

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

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;将新鲜的想法与最复杂…

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

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

OO-第一单元总结

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

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

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

PAT L3-007 天梯地图

https://pintia.cn/problem-sets/994805046380707840/problems/994805051153825792 本题要求你实现一个天梯赛专属在线地图&#xff0c;队员输入自己学校所在地和赛场地点后&#xff0c;该地图应该推荐两条路线&#xff1a;一条是最快到达路线&#xff1b;一条是最短距离的路线…

Two.js – 为现代浏览器而生的 2D 绘图 API

Two.js 是面向现代 Web 浏览器的一个二维绘图 API。Two.js 可以用于多个场合&#xff1a;SVG&#xff0c;Canvas 和 WebGL&#xff0c;旨在使平面形状和动画的创建更方便&#xff0c;更简洁。 Two.js 有一个内置的动画循环&#xff0c;可搭配其他动画库。Two.js 包含可伸缩矢量…

apache arm 交叉编译_MacOS 下交叉编译的折腾笔记

这是这个系列 “折腾笔记” 的第一篇&#xff0c;希望能用更直白的方式去展现交叉编译的时候做了些什么。因此&#xff0c;这个教程并不是最佳实践&#xff0c;但是可以让小伙伴们有一个更直白的理解。之后&#xff0c;我会把笔记的重点放在 bazel 上交叉编译的最佳实践&#x…

树-二叉树、满二叉树和完全二叉树

树-二叉树、满二叉树和完全二叉树 二叉树的定义&#xff1a; &#xff08;1&#xff09;当n0时&#xff0c;为空树&#xff1b; &#xff08;2&#xff09;当n>0时&#xff0c;是由一个根结点和称为根结点的左、右子树构成&#xff0c;并且两颗子树互不相交。 满二叉树&…

Codrops 优秀教程:基于 CSS3 的全屏网页过渡特效

向大家分享一个来自 Codrops 的基于 CSS3 实现的全屏网页过渡特效。页面初始布局是四个盒子&#xff0c;点击其中一个会扩张到全屏&#xff0c;其它的会淡出隐藏&#xff1b;关闭当前视图的时候又恢复到初始状态。 您可能感兴趣的相关文章-prefix-free&#xff1a;帮你从 CSS 前…

经典案例:2012年最佳25个响应式网站设计作品《下篇》

2012年&#xff0c;响应式网站设计成为主流&#xff0c;这个概念由著名网页设计师 Ethan Marcotte 在2010年5月份提出&#xff0c;其目标是要让设计的网站能够响应用户的行为&#xff0c;根据不同终端设备自动调整尺寸。 响应式设计不再只是一个概念&#xff0c;众多大公司也把…

npm git 遇到的问题解决笔记

npm 报错 在无可奈何时可以试一试这个命令 npm cache clean --force commit 是如果报这样的错 删掉项目中.git/index.lock文件再commit即可解决问题 1.git config --global user.email xxx163.com 2.git config --global user.name xxx 3.ssh-keygen -t rsa -C xxx163.com(邮箱…

Docverter – 文本文件轻松转换为 PDF,Docx 和 ePub 文件

Docverter 让你无需建立自己的文档转换工具就能够进行文件转换。Docverter 包装了几个开源项目&#xff0c;使您的文档能够进行完美的转换。借助一个简单的 HTTP API &#xff0c;把使用 HTML&#xff0c;Markdown, 或者 LaTeX 编写的纯文本文件转换为 DOCX&#xff0c;PDF&…

MoreUnit与MoreUnit

就在一年多以前&#xff0c;我写了一篇关于在Eclipse中使用JUnit的文章。 评论者之一推荐MoreUnit &#xff0c;以进一步提高测试效率。 尝试一下让我感到很高兴&#xff0c;并且我的自主神经系统立即记住了该插件的键盘快捷键…… 另外&#xff0c;在使用MoreUnit一段时间后&…

js html 导出word 不用activexobject,javascript下用ActiveXObject控件替换word书签,将内容导出到word后打印第2/2页...

javascript下用ActiveXObject控件替换word书签&#xff0c;将内容导出到word后打印第2/2页更新时间&#xff1a;2008年06月21日 22:57:31 作者&#xff1a;由于时间比较紧&#xff0c;没多的时候去学习研究上述工具包&#xff0c;现在用javascript操作ActiveXObject控件&…

平时二十三测

昨日AK&#xff0c; 今日垫底&#xff0c; 我简直是在坐过山车&#xff1b; 以后记住有返回值的函数一定要写返回值&#xff0c;不然全部输出0 题解: 第一题&#xff1a;全是-1&#xff0c; 是2^(n-1)-1,不会证&#xff0c;样例很明显&#xff1b; 对于有X个跟班的人&#xff0…