BZOJ 世界树
第一步首先建虚树
第二步两遍dfs,一次从叶子到根,一次从根到叶子,就可以得到虚树中每个节点在M个询问点中离他最近的是哪个(简称为控制点)
第三步考虑计算答案,对于整个树,我们把节点化为三个种类
1.节点在虚树的叶子节点的子树中
2.节点在虚树根节点之上的部分
3.节点在虚树两个节点之间
对于第一和第二种节点,我们很好统计答案的贡献分别为当前节点子树的大小和总节点的个数减去当前节点子树大小
而对于第三种,假设虚树上每对相邻节点深度小的为U,深度大的为V.
如果U的控制点和V的控制点相同,那么显然U与V之间的部分只对一个答案有贡献,该答案即为U与V的控制点.
如果U的控制点与V的控制点不同,假设U的控制点为I,V的控制点为J.那么他们肯定是I->U->V->J这样的深度递增序
如果dis(U,V)+dis(V,J)>(dis(I,U)+dis(U,V)+dis(V,J))/2>dis(V,J) 那么U与V之间的部分就会被分为两个部分
利用倍增从V开始跳(dis(I,U)+dis(U,V)-dis(V,J))/2找到分界点分别统计贡献.
BZOJ 世界树的更多相关文章
- BZOJ 3572: [Hnoi2014]世界树
BZOJ 3572: [Hnoi2014]世界树 标签(空格分隔): OI-BZOJ OI-虚数 OI-树形dp OI-倍增 Time Limit: 20 Sec Memory Limit: 512 ...
- BZOJ 3572 世界树
Description 世界树是一棵无比巨大的树,它伸出的枝干构成了整个世界.在这里,生存着各种各样的种族和生灵,他们共同信奉着绝对公正公平的女神艾莉森,在他们的信条里,公平是使世界树能够生生不息.持 ...
- bzoj 3572: [Hnoi2014]世界树 虚树 && AC500
3572: [Hnoi2014]世界树 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 520 Solved: 300[Submit][Status] ...
- bzoj 3572 [Hnoi2014]世界树(虚树+DP)
3572: [Hnoi2014]世界树 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 645 Solved: 362[Submit][Status] ...
- BZOJ 3572 【HNOI2014】 世界树
题目链接:世界树 首先看到\(\sum m_i\le 3\times 10^5\)这个条件,显然这道题就需要用虚树了. 在我们构建出虚树之后,就可以用两遍\(dfs\)来求出离每个点最近的议事处了.然 ...
- bzoj 3572: [Hnoi2014]世界树 虚树
题目: Description 世界树是一棵无比巨大的树,它伸出的枝干构成了整个世界.在这里,生存着各种各样的种族和生灵,他们共同信奉着绝对公正公平的女神艾莉森,在他们的信条里,公平是使世界树能够生生 ...
- BZOJ 3572 [HNOI2014]世界树 (虚树+DP)
题面:BZOJ传送门 洛谷传送门 题目大意:略 细节贼多的虚树$DP$ 先考虑只有一次询问的情况 一个节点$x$可能被它子树内的一个到x距离最小的特殊点管辖,还可能被管辖fa[x]的特殊点管辖 跑两次 ...
- BZOJ 3752 世界树
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3572 题意:给出一棵树.若干询问.每个询问给出m个点,输出每个点管辖的点的个数.x ...
- BZOJ 3572 世界树(虚树)
http://www.lydsy.com/JudgeOnline/problem.php?id=3572 思路:建立虚树,然后可以发现,每条边不是同归属于一端,那就是切开,一半给上面,一半给下面. # ...
随机推荐
- OpenResty + Lua访问Redis,实现高并发访问时的毫秒级响应打回
一.lua中redis的配置依赖: 1.OpenResty的lua访问redis的插件:https://github.com/openresty/lua-resty-redis 二.下载后,导入对应的 ...
- linux文本处理三剑客命令及用法
grep:文本过滤工具 功能说明: sed :字符流编辑器 功能说明: awk :
- Subarray Product Less Than K
Your are given an array of positive integers nums. Count and print the number of (contiguous) subarr ...
- docker运行报错docker0: iptables: No chain/target/match by that name.
转自:https://blog.csdn.net/wohaqiyi/article/details/84450562 docker运行报错docker0: iptables: No chain/tar ...
- PAT A1016 Phone Bills (25)
题目描述 A long-distance telephone company charges its customers by the following rules: Making a long-d ...
- luogu P2423 [HEOI2012]朋友圈 (最大团)
在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着. 一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最大数目.两个国家看成是 ...
- hdfs架构详解(防脑裂fencing机制值得学习)
HDFS(Hadoop Distributed File System)是一个分布式文件存储系统,几乎是离线存储领域的标准解决方案(有能力自研的大厂列外),业内应用非常广泛.近段抽时间,看一下 HDF ...
- 第一次碰到%*s这个鬼东西。。
printf("%*s",5,"123"); 输出为 ##123 (其中##表示空格) 这个鬼东西是用来控制格式的. 当然也可以用来输出空格个数
- Android获取网络时间的方法
一.通过免费或者收费的API接口获取 1.免费 QQ:http://cgi.im.qq.com/cgi-bin/cgi_svrtime 淘宝:http://api.m.taobao.com/rest/ ...
- 大数据测试类型&大数据测试步骤
一.什么是大数据? 大数据是一个大的数据集合,通过传统的计算技术无法进行处理.这些数据集的测试需要使用各种工具.技术和框架进行处理.大数据涉及数据创建.存储.检索.分析,而且它在数量.多样性.速度方法 ...