P3714 [BJOI2017]树的难题

求解树上长度在L到R的树链中颜色段权值和最大的链。

首先求解树上链的问题,而且限制了链的长度,那么我们需要点分治处理,然后考虑每次分治,我们可以把链分成两类,先处理同色连通块,再处理异色连通块,然后采用每次查询一个子树的答案然后加入这个子树的方法。然后对于一个给定链,对应了一个区间的权值,所以我们直接使用线段树即可,然后合并的时候直接线段树合并即可。

但是这个问题还有一个特殊性质,就是我们每次查询的区间长度是一定的,所以如果询问有序,就可以使用单调队列处理了,那么我们可以通过bfs得到一个有序的序列,然后到单调队列上跑即可,但是考虑这个复杂度等于单调队列长度,而单调队列的长度等于之前出现的最深的点的深度,如果直接跑可能是O(n)的,但是如果我们将深度从小到大排序,那么复杂度一定是小于当前子树大小的,那么总复杂度就是O(nlogn)的,然后合并两个序列我们可以使用归并,复杂度也是正确的。

另外我们考虑异色连通块,需要按照最大深度从小到大处理,这样可以保证每次复杂度也是正确的,但是这样就要要求将整个颜色一起处理。

每一次复杂度是O(dlogd+size)O(dlogd+size)O(dlogd+size),那么总复杂度就是O(nlogn)O(nlogn)O(nlogn)

P3714 [BJOI2017]树的难题(点分治/线段树/单调队列)相关推荐

  1. [BJOI2017]树的难题 点分治,线段树合并

    [BJOI2017]树的难题 LG传送门 点分治+线段树合并. 我不会写单调队列,所以就写了好写的线段树. 考虑对于每一个分治中心,把出边按颜色排序,这样就能把颜色相同的子树放在一起处理.用一棵动态开 ...

  2. 【bzoj4372】烁烁的游戏 动态点分治+线段树

    题目描述 给一颗n个节点的树,边权均为1,初始点权均为0,m次操作: Q x:询问x的点权. M x d w:将树上与节点x距离不超过d的节点的点权均加上w. 输入 第一行两个正整数:n,m 接下来的 ...

  3. 洛谷T44252 线索_分治线段树_思维题

    分治线段树,其实就是将标记永久化,到最后再统一下传所有标记. 至于先后顺序,可以给每个节点开一个时间戳. 一般地,分治线段树用于离线,只查询一次答案的题目. 本题中,标记要被下传 222 次. Cod ...

  4. BZOJ4012[HNOI2015]开店——树链剖分+可持久化线段树/动态点分治+vector

    题目描述 风见幽香有一个好朋友叫八云紫,她们经常一起看星星看月亮从诗词歌赋谈到 人生哲学.最近她们灵机一动,打算在幻想乡开一家小店来做生意赚点钱.这样的 想法当然非常好啦,但是她们也发现她们面临着一个 ...

  5. [BZOJ4372][烁烁的游戏][动态树分治+线段树+LCA]

    [BZOJ4372][烁烁的游戏][动态树分治+线段树+LCA] 题目大意: 给定一颗nn个节点的树,边权均为11,初始每个点权值为00 . 其中操作QQ xx询问x点的点权,操作 MM xx dd ...

  6. 【BZOJ4372】烁烁的游戏 动态树分治+线段树

    [BZOJ4372]烁烁的游戏 Description 背景:烁烁很喜欢爬树,这吓坏了树上的皮皮鼠. 题意: 给定一颗n个节点的树,边权均为1,初始树上没有皮皮鼠. 烁烁他每次会跳到一个节点u,把周围 ...

  7. 2019ICPC上海网络赛A 边分治+线段树

    题目: 给定一棵树, 带边权. 现在有2种操作: 1.修改第i条边的权值. 2.询问u到其他一个任意点的最大距离是多少. 解法:边分治+线段树 首先我们将所有的点修改和边修改都存在对应的边里面. 然后 ...

  8. P6242-[模板]线段树3【吉司机线段树】

    正题 题目链接:https://www.luogu.com.cn/problem/P6242 题目大意 给出一个长度为nnn的序列aaa,mmm次要求支持操作 区间加上一个值kkk 区间所有aia_i ...

  9. 【BZOJ4515】游戏,树链剖分+永久化标记线段树维护线段信息(李超线段树)

    Time:2016.05.10 Author:xiaoyimi 转载注明出处谢谢 传送门 思路: 李超线段树 一开始听faebdc讲,并没有听的很懂ww 后来找到良心博文啊有木有 折越 首先可以把修改 ...

  10. 线段树简单入门 (含普通线段树, zkw线段树, 主席树)

    线段树简单入门 递归版线段树 线段树的定义 线段树, 顾名思义, 就是每个节点表示一个区间. 线段树通常维护一些区间的值, 例如区间和. 比如, 上图 \([2, 5]\) 区间的和, 为以下区间的和 ...

最新文章

  1. COM:根系-土壤-微生物互作
  2. 5.Spring Cloud Alibaba教程:Nacos整合Feign
  3. 软件开发质量的双保险 — 1.设计验证与软件测试
  4. 隐藏/显示jeecg-boot 后端管理页面的右侧的系统设置
  5. 移动玩具(信息学奥赛一本通-T1453)
  6. 撩妹java代码_Java程序媛深入浅出设计模式中的撩妹神技--中篇
  7. Python3网络爬虫快速入门实战解析——对大佬部分代码失效的修改
  8. 切片 go 去除第一个_Go语言入门指南,带你轻松学Go
  9. Atitit it系列书籍列表 C:\Users\Administrator\Documents\it 软件系列书籍\itlist.txt C:\Users\Administrator\Docume
  10. 【AI视野·今日CV 计算机视觉论文速览 第151期】Tue, 6 Aug 2019
  11. Java app接入微信和支付宝支付
  12. excel表格拆分多个表如何操作
  13. (vcom-1141) Identifier “<protected>“ does not identify a component declaration.
  14. Monkey King(左偏树 可并堆)
  15. 复杂网络分析 08网络节点重要性
  16. 逃离一线城市程序员的Plan B
  17. 【Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 第一个Shader的书写
  18. VIVE™在MWC上海展示生态全景,虚拟现实行业新趋势初见端倪
  19. 我们是如何改进YOLOv3进行红外小目标检测的?
  20. WebRTC视频帧渲染前处理——视频帧裁剪

热门文章

  1. 看似毫无规律的各种现象
  2. 40张令人震惊的对比图,第一张细思恐极
  3. 22张令人叹为观止的照片,你所未知的另一面
  4. 批作业是小学老师的一大乐趣 | 今日最佳
  5. 《SAS编程与数据挖掘商业案例》学习笔记之十八
  6. 服务器 不支持gbk,解决JS请求服务器gbk文件乱码的问题
  7. tftp 服务器 ip_360Stack裸金属服务器部署实践
  8. 计算机常用编程英语词汇大全,计算机编程及常用术语英语词汇大全
  9. xps13安装linux系统,[操作系统]Dell XPS 13 (9360)安装配置 ubuntu 16.04 实现 win10 Linux双系统...
  10. 通过对象属性去重_Redis常见对象类型的底层数据结构