sol - 0x63
注意到K只能是1或2,也就是说只能建0/1/2条新道路
我们分类讨论
当修建0条新道路的时候,
执行遍历会恰好遍历到每条边2次,答案为2*(n-1)
当修建1条新道路的时候,
我们设新道路连接x,y,则本来需要走两次的边(x,y)只要走一次,得到结果是2*(n-1)-(x,y),
易得(x,y)取直径L1时值最小,为2*(n-1)-L1+1
当修建2条新道路的时候,
就相当于在修建一条新道路的基础上在修建1条新道路
如果新道路形成的环有一部分与旧道路形成的环重叠,
那么我们必须再次经过这些边
否则答案继续减小
我们把原直径上的边权取反,然后再次求直径L2,答案就是2*(n-1)-L1+1-L2+1
转自《算法竞赛进阶指南》
解法1:暴力
直接找出直径后枚举左右端点,O(n3)
解法2:暴力的优化!QAQ
直接枚举左端点,让右端点最远,O(n2),可轻松AC原题
解法3:二分
为了通过加强版,我们继续观察:发现本题答案具有单调性,珂以二分答案
那么问题就转化为“验证是否存在一个核的偏心距不超过mid”
珂以找距直径两端点距离分别小于等于mid的两个点作为树网的核
珂以O(N)判定是否超过S ;
解法4:分析性质
设直径上的点为u1,u2......ut,先把这些节点标记为已访问,通过深度优先遍历求出d[ui]表示不经过直径上的点能到达的最远点的距离
以ui,uj为端点的点的树网的核的偏心距为max(max{d{uk|i≤k≤j},dist(u1,ui) ,dist(uj,ut)) ;
此时单调队列维护d[uk]就珂以做到O(N)了!
Warning!
本文由 TYQ 创作,采用 知识共享署名 4.0 国际许可协议进行许可。
转载要与作者联系,并需在正文明显处署名作者且注明文章出处。
对了,我永远喜欢C++啊。
sol - 0x63的更多相关文章
- 利用 Serial Over Lan(SOL)搭建 XEN 的调试信息输出环境
如有转载,请注明出处与本文连接,谢谢! 修改XEN的源码实现额外的功能,需要有一个调试环境来得到XEN的调试信息(有关源码编译并安装 XEN 请阅读我以前的博文:在CentOS下源码安装 Xen并搭建 ...
- grub的sol
http://smcijohnny.blogspot.com/2015/06/linuxsolserial-over-lan.html https://www.hiroom2.com/2016/06/ ...
- 士兵站队问题sol
作者:http://www.cnblogs.com/taoziwel/articles/1859577.html 相类似题目:输油管道问题 [问题描述] 在一个划分成网格的操场上,n个士兵散乱地站在网 ...
- dell ipmi sol
http://blog.arnoudvermeer.nl/post/52375062605/howto-setup-ipmi-sol-on-a-dell-r-series-server http:// ...
- 词根:sol = sun(太阳) 词根:sol = alone/single, whole/entire (单独的)
词根:sol = sun(太阳) sol 这个词根有的书上如刘毅字典,刘洪波英文字根词源精讲等上面说来自拉丁语的sol(=sun),有的书如赢在单词上面说sol 来自拉丁语的solari,但不管哪种说 ...
- SOL的补充
之前写过一些关于远程安装系统的文档,但是对于SOL还是糊涂不清. Serial Console 可以将输入输出转发到串行接口(com1, com2), 假如你有串行读取设备,就可以看到显示,控制输入. ...
- 第四章 自定义sol合约转化java代码,并实现调用
鉴于笔者以前各大博客教程都有很多人提问,早期建立一个技术交流群,里面技术体系可能比较杂,想了解相关区块链开发,技术提问,请加QQ群:538327407 准备工作 1.官方参考说明文档 https:/ ...
- ENS 域名注册表智能合约(ENSRegistry.sol)解析
ENS 注册表合约是 ENS 系统中的核心合约,了解这个合约可以敲开我们理解 ENS 域名系统的大门. 打开下面的折叠区域可以查看用 Solidity 语言编写的详细代码.当前部署在以太坊中的 ENS ...
- IPMI中sol的使用
IPMI中sol的使用 转载韦远科 最后发布于2013-05-09 15:19:18 阅读数 7920 收藏 http://blog.chinaunix.net/uid-1838361-id-3 ...
随机推荐
- docker安装出现"Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?"
今天按照这个教程使用WSL安装docker时遇到了个问题: 使用命令:$ docker search mysql 出现:Cannot connect to the Docker daemon at u ...
- POJ - 2253 Frogger(最短路Dijkstra or flod)
题意:要从起点的石头跳到终点的石头,设The frog distance为从起点到终点的某一路径中两点间距离的最大值,问在从起点到终点的所有路径中The frog distance的最小值为多少. 分 ...
- CF 767#
A题的话,用一个priority_queue维护一下,直到最大的符合要求才出来,,(一开始记错了,,2333写成了小根堆...) #include<bits/stdc++.h> #defi ...
- cf 187B.AlgoRace
floyd...太神奇了(不会floyd(大雾)) 貌似floyd的外层k是保证最短路从起点逐渐向外扩展(而不是乱搞233) 所以在处理f[i][j]=min(f[i][j],f[i][k]+f[k] ...
- 苹果maccms网站漏洞进行修复解决方法教程
上期发现视频名称中包含木马文件 然后教大家使用标签进行过滤 {$vo.vod_name|mac_filter_html} 可是最近发现现在黑客行为是全字段挂马,修改数据字段格式挂马,多重嵌套挂马. 真 ...
- 设置Apache(httpd)和Nginx 开机自启动
方法1: 进入目录: vi /etc/rc.d/rc.local #设置apache 和 nginx 开机自启动/usr/sbin/apachectl start/usr/sbin/nginx s ...
- 寒假day22
今天解决了标签模块的一些错误,同时美化了界面
- 高级css效果
1.图片渐变效果 background linear-gradient(top,rgba(0,0,0,.8),rgba(0,0,0,.8))
- C# 创建Windows服务。服务功能:定时操作数据库
一.创建window服务 1.新建项目-->选择Windows服务.默认生成文件包括Program.cs,Service1.cs 2.在Service1.cs添加如下代码: System.T ...
- 二十三种设计模式 python实现
设计模式是什么? 设计模式是经过总结.优化的,对我们经常会碰到的一些编程问题的可重用解决方案.一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码.反之,设计模式更为高级,它是一种必须在特定情 ...