[例题]巡逻

注意到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

[例题]树网的核 BZOJ1999加强版

转自《算法竞赛进阶指南》

解法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的更多相关文章

  1. 利用 Serial Over Lan(SOL)搭建 XEN 的调试信息输出环境

    如有转载,请注明出处与本文连接,谢谢! 修改XEN的源码实现额外的功能,需要有一个调试环境来得到XEN的调试信息(有关源码编译并安装 XEN 请阅读我以前的博文:在CentOS下源码安装 Xen并搭建 ...

  2. grub的sol

    http://smcijohnny.blogspot.com/2015/06/linuxsolserial-over-lan.html https://www.hiroom2.com/2016/06/ ...

  3. 士兵站队问题sol

    作者:http://www.cnblogs.com/taoziwel/articles/1859577.html 相类似题目:输油管道问题 [问题描述] 在一个划分成网格的操场上,n个士兵散乱地站在网 ...

  4. dell ipmi sol

    http://blog.arnoudvermeer.nl/post/52375062605/howto-setup-ipmi-sol-on-a-dell-r-series-server http:// ...

  5. 词根:sol = sun(太阳) 词根:sol = alone/single, whole/entire (单独的)

    词根:sol = sun(太阳) sol 这个词根有的书上如刘毅字典,刘洪波英文字根词源精讲等上面说来自拉丁语的sol(=sun),有的书如赢在单词上面说sol 来自拉丁语的solari,但不管哪种说 ...

  6. SOL的补充

    之前写过一些关于远程安装系统的文档,但是对于SOL还是糊涂不清. Serial Console 可以将输入输出转发到串行接口(com1, com2), 假如你有串行读取设备,就可以看到显示,控制输入. ...

  7. 第四章 自定义sol合约转化java代码,并实现调用

     鉴于笔者以前各大博客教程都有很多人提问,早期建立一个技术交流群,里面技术体系可能比较杂,想了解相关区块链开发,技术提问,请加QQ群:538327407 准备工作 1.官方参考说明文档 https:/ ...

  8. ENS 域名注册表智能合约(ENSRegistry.sol)解析

    ENS 注册表合约是 ENS 系统中的核心合约,了解这个合约可以敲开我们理解 ENS 域名系统的大门. 打开下面的折叠区域可以查看用 Solidity 语言编写的详细代码.当前部署在以太坊中的 ENS ...

  9. IPMI中sol的使用

    IPMI中sol的使用 转载韦远科 最后发布于2013-05-09 15:19:18 阅读数 7920  收藏   http://blog.chinaunix.net/uid-1838361-id-3 ...

随机推荐

  1. 查看mysql表空间

    ,),'MB') as data_size, concat(,),'MB') as index_size from information_schema.tables group by TABLE_S ...

  2. tableau-参数

    tableau参数可用在计算字段.筛选器和参考线中替换常量值得动态值. 三种方式:1.在计算字段中使用筛选器 案例动态替换计算字段中设定的目标值. 创建参数 以参数值创建计算字段 2.筛选器中使用参数 ...

  3. 【LeetCode】最长连续序列

    [问题]给定一个未排序的整数数组,找出最长连续序列的长度. 要求算法的时间复杂度为 O(n). 示例: 输入: [, , , , , ] 输出: 解释: 最长连续序列是 [, , , ].它的长度为 ...

  4. oracle数据库常用操作语句 、创建视图

    新增字段:alter table 表名 add (NAME VARCHAR(12), NAME NUMBER(10) );--如果添加单个字段可以不用括号包起来,例如 alter table cust ...

  5. Tomcat9卸载与安装

    Tomcat9卸载与安装 首先确定环境变量配置正确,按实际的安装路径来设置. 在tomcat9的bin目录下打开命令行窗口 按住shift键不放,点击右键 输入以下命令 在打开的命令行窗口中输入以下命 ...

  6. SPFA--P3905 道路重建

    题目描述 从前,在一个王国中,在n个城市间有m条道路连接,而且任意两个城市之间至多有一条道路直接相连.在经过一次严重的战争之后,有d条道路被破坏了.国王想要修复国家的道路系统,现在有两个重要城市A和B ...

  7. 实验吧web-易-上传绕过

    随便上传一个png文件,出现提示 我们再上传一个php文件,却出现提示 上传遇到问题是肯定的,题目就是上传绕过,所以我们下面要做的就是绕过检测. 这里使用00截断. 首先在提交时抓包 我们将图中upl ...

  8. SASS - 函数

    SASS – 简介 SASS – 环境搭建 SASS – 使用Sass程序 SASS – 语法 SASS – 变量 SASS- 局部文件(Partial) SASS – 混合(Mixin) SASS ...

  9. CF1217B Zmei Gorynich

    You are fighting with Zmei Gorynich — a ferocious monster from Slavic myths, a huge dragon-like rept ...

  10. 黑马oracle_day01:03.oracle的查询

    01.oracle体系结构 02.oracle的基本操作 03.oracle的查询 04.oracle对象 05.oracle编程 黑马oracle_day01:03.oracle的查询 09scot ...