【JZOJ3824】【NOIP2014模拟9.9】渴
SLAF
世界干涸,Zyh认为这个世界的人们离不开水,于是身为神的他要将他掌控的仅仅两个水源地放置在某两个不同的城市。这个世界的城市因为荒芜,他们仅仅保留了必要的道路,也就是说对于任意两个城市有且仅有一条可行的道路。更简单的,城市形成了一棵树。 
Zyh要将这两个水源放在两个不同的城市。饥渴的人们会选择一个离他们最近的水源,并向其走去。每个城市的人的速度都是相同的,并且两个相邻(有边直接相连)的城市的距离都是1,每个人花费的时间也都是1。zyh想知道对于他的每种放置方案,最迟到达的时间是多少。 
对于100%的数据 n<=200000 , m<=200000
THISR
对于询问x,y,如果从x到y这条路径上的中点把树一分为二; 
那么x所在的树只受x影响,y所在的树只受y的影响。 
证明的关键: 
由于原图是一棵树,所以x到y的路径有且只有一条。
首先给所有点维护,以其为子树中并且以其出发的最长链、次长链、次次长链的长度。 
现在考虑如何对于一个询问而言,分别给两棵树求出从x,y出发的最长链。 
设deep[x]>deep[y], 
那么从x向上跳dist(x,y)2就是路径中点mid。 
然后,树就变成了这样。 
1.x
首先对于x而言,现在x的子树中找一条从x出发的最长链。 
再从x到mid的路径上找一条从x出发的最长链: 
这个可以使用倍增实现,设g1[i][j]表示,从i点出发,在与其距离为2j的父亲的路径上,不包含i的最长链。 
由于不能包含x的子树,所以要维护最大值,和次大值。
2.y
对于y而言也是雷同,在LCA向下到mid时,需要维护另一个倍增数组g2[i][j]。 
注意一下: 
1.mid=LCA的情况; 
2.LCA的父亲也可以产生最长链。
Dance in the Dark
这方法是真的骚。 
但原题的出题人提供的解法就是维护最长链、次长链、次次长链+倍增的方法, 
而非直径的那种方法。
【JZOJ3824】【NOIP2014模拟9.9】渴的更多相关文章
- JZOJ 3929. 【NOIP2014模拟11.6】创世纪
		
3929. [NOIP2014模拟11.6]创世纪 (Standard IO) Time Limits: 1000 ms Memory Limits: 65536 KB Description 上帝手 ...
 - JZOJ 3928. 【NOIP2014模拟11.6】射击
		
3928. [NOIP2014模拟11.6]射击 (Standard IO) Time Limits: 1000 ms Memory Limits: 65536 KB Description 有问题, ...
 - JZOJ 3927. 【NOIP2014模拟11.6】可见点数
		
3927. [NOIP2014模拟11.6]可见点数 (Standard IO) Time Limits: 1000 ms Memory Limits: 65536 KB Description ZP ...
 - 【题解】 2月19日 厦门双十中学NOIP2014模拟D2 T1 采药人的切题规则
		
Made by 退役的OIer 第一次写博客,写得不好 or 不清楚的可以 在下方留言,我会尽量改进的! 好啦~~~回到正题,题面见传送门 [问题描述] 采药人最近在认真切题,但回旋的转盘时常在眼前浮 ...
 - 【NOIP2014模拟赛No.1】我要的幸福
		
OJ题号:ZHOJ1297 思路:搜索. 先预处理注定不能走的路径,然后dfs可以走的路径. #pragma GCC optimize ("O2") #include<cst ...
 - 【NOIP2014模拟10.25A组】画矩形
		
题目 分析 由于要求按时间顺序来操作,考虑整体二分: 对于一段二分出来的区间,将左区间的修改和右区间的查询取出来,每次更新每个查询的答案,正确性显然. 现在有一对修改和查询的操作(保证所有的查询都在修 ...
 - 【NOIP2014模拟11.3】噪音
		
题目 FJ有M个牛棚,编号1至M,刚开始所有牛棚都是空的.FJ有N头牛,编号1至N,这N头牛按照编号从小到大依次排队走进牛棚,每一天只有一头奶牛走进牛棚.第i头奶牛选择走进第p[i]个牛棚.由于奶牛是 ...
 - 【NOIP2014模拟11.3】蛋糕
		
题目 今天是Bessie的生日,他买了一个蛋糕和朋友们一起分享,蛋糕可以看成是一个R行C列的表格,共有R*C个格子,每个格子都有一个0至9的数字,表示该格子蛋糕拥有的巧克力.现在Bessie要把蛋糕横 ...
 - 【长郡NOIP2014模拟10.22】搞笑的代码
		
题目 在OI界存在着一位传奇选手--QQ,他总是以风格迥异的搞笑代码受世人围观 某次某道题目的输入是一个排列,他使用了以下伪代码来生成数据 while 序列长度<n do { 随机生成一个整数属 ...
 
随机推荐
- MySQL系列(十一)--外键约束foreign key的基本使用
			
有些时候,为了保证数据的完整性,我们会选择的使用外键约束,例如教师对应的表和课程表中老师的id,这种时候就要使用外键约束了. PS:这里不考虑表结构设计,三范式与反范式等设计问题,基于MySQL8.0 ...
 - Java实现对日期上旬中旬下旬格式化
			
PS:我数据库表定义的日期是String类型,要求对读取的日期进行格式化为xx年xx月上\中\下旬 测试代码如下 package day1; import java.text.ParseExcepti ...
 - mysql查看执行计划重构后的查询
			
MYSQL优化器会对客服端发送的SQL语句进行优化,优化后的SQL语句再被MYSQL执行.然后我们在优化SQL的时候,怎么获取到MYSQL优化后执行语句呢. EXPLAIN select * from ...
 - 吴恩达《机器学习》课程总结(18)_照片OCR
			
18.1问题描述和流程图 (1)图像文字识别是从给定的一张图片中识别文字. (2)流程包括: 1.文字侦测 2.字符切分(现在不需要切分了) 3.字符分类 18.2滑动窗口 在行人检测中,滑动窗口是首 ...
 - C++中int型与char型相互转换的问题
			
参考:https://www.cnblogs.com/dj-917366761-bg/p/7078078.html 主要针对0~9这几个数字. 可以借助 ‘0’. char 转 int —— int ...
 - NSIS使用WinVer.nsh头文件判断操作系统版本
			
NSIS使用WinVer.nsh头文件判断操作系统版本,首先请下载最新的WinVer.nsh: http://nsis.sourceforge.net/Include/WinVer.nsh(下载后置于 ...
 - hashMap 源码解读理解实现原理和hash冲突
			
hashMap 怎么说呢. 我的理解是 外表是一个set 数组,无序不重复 . 每个set元素是一个bean ,存着一对key value 看看代码吧 package test; import jav ...
 - docker启动redis设置密码
			
docker run --name picker-redis -p 6379:6379 -d redis --requirepass "认证密码"
 - day18-事务与连接池 7.事务隔离级别总结
 - Hadoop 伪分布式安装配置