首页 > 其他分享 >线段树分治学习笔记

线段树分治学习笔记

时间:2024-07-11 09:31:51浏览次数:17  
标签:二分 线段 分治 笔记 答案 区间 节点

线段树分治是一种通过线段树维护时间轴,实现一些可撤销的信息维护问题的手段。

线段树分治是离线算法。

具体地,对于若干个修改与询问,按照时间戳像区间修改一样挂在线段树的节点上,然后遍历整棵线段树,将节点上的操作计入贡献,对于一个时间戳为 \(t\) 的询问,线段树上区间 \([t,t]\) 即为答案,在遍历完一个区间的左右儿子后,再将该节点操作撤销。这样就保证了对于时间 \(t\) 只有时间范围包含 \(t\) 的操作对答案有贡献。

P5787 二分图 /【模板】线段树分治

首先对于二分图的判定,染色显然是不现实的,可以使用扩展域并查集解决,将一个点 \(x\) 拆为 \(x_1\) 和 \(x_2\),若连边时发现两个点 \(x_1\) 与 \(y_2\) 已经属于同一集合,则说明存在奇环,不是二分图。接下来使用线段树分治,将每条边挂在线段树上,当走到一个线段树上一个区间时,若将该区间上挂着的所有边都加入并查集后出现了奇环,那么说明该区间所有时间答案全部为 \(\text{No}\)。若已经走到叶子节点仍未出现矛盾,则说明该时间答案为 \(\text{Yes}\)。对于并查集的撤销,不进行路径压缩,保留树的形态,用一个栈记录一下最新修改的 \(fa\),在离开区间时将栈中节点 \(fa_i=i\),为了保证时间复杂度的正确,使用按秩合并即可。

P3733 [HAOI2017] 八纵八横

同理,将修改看作建立另一条新边,同时删除旧的边,这样就又转化为了每条边有一定存在时限的问题,然后考虑怎样求出答案,参考 [WC2011] 最大XOR和路径,有贡献的边一定位于一个环上,那么就动态维护所有环的异或长度,插入线性基中,用栈记录新产生的环在线性基中是哪一位,最后退出时将该位清零即可。

标签:二分,线段,分治,笔记,答案,区间,节点
From: https://www.cnblogs.com/victoryang-not-found/p/18295343

相关文章

  • 【持续更新】平衡树笔记
    目录1从BST到平衡树2替罪羊树2.1替罪羊树的维护2.2替罪羊树的基本操作2.2.1替罪羊树的结点信息2.2.2替罪羊树的空间利用2.2.3替罪羊树的重建2.2.4替罪羊树的插入、删除2.2.5替罪羊树的按数找排名、按排名找数2.2.6替罪羊树的找前驱、后继2.3替罪羊树完整代码1从BS......
  • Systemd 学习笔记
    Unit的配置文件[Unit]区块通常是配置文件的第一个区块,用来定义Unit的元数据,以及配置与其他Unit的关系[Install]通常是配置文件的最后一个区块,用来定义如何启动,以及是否开机启动[Service]区块用来Service的配置,只有Service类型的Unit才有这个区块Unit文件[Unit......
  • Python学习笔记(一)(更新中)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档Python基础语法(一)一、变量1、变量命名的规则2、变量的常见类型二、注释提示:以下是本篇文章正文内容,下面案例可供参考一、变量变量是指存储信息的容器。变量的赋值包括变量名、等号、存储的信息这......
  • 《未来世界的幸存者》读书笔记
    信息《未来世界的幸存者》阮一峰https://www.ruanyifeng.com/survivor/摘录以前,我们常听到的口号是“技术让生活更美好”,但现在不是这样,技术只是刺激消费的工具。理想中,技术应该发扬人性的正面因素,实际上技术却被用来放大和推动人性的负面因素。比如,我们动用大量的金钱和能......
  • 《杀死一只知更鸟》读书笔记
    信息《杀死一只知更鸟》[美]哈珀·李/高红梅/译林出版社摘录有一天在学校里,我又被迫想到了他们。我们每周有一节“时事讲评”课。每个孩子都要从报纸上剪一条新闻,背熟内容,之后再讲给全班同学听。这项练习据说能克服种种缺点:站在同学面前可以鼓励他姿势端正,神情泰然;做一......
  • 《论语》读书笔记
    信息《论语》杨逢彬注译长江文艺出版社摘录子曰:弟子入则孝,出则悌,谨而信,泛爱众而亲仁,行有余力,则以学文。子曰:君子食无求饱,居无求安,敏于事而慎于言,就有道而正焉,可谓好学也已矣。子曰:学而不思则罔,思而不学则殆。子曰:多闻阙疑,慎言其余,则寡尤。多见阙殆,慎行其余,则寡......
  • 2024/7/10 笔记
    CF1693F对0,1个数相等的0,1串进行排序一定是最优的贪心策略。我们把0记为1,1记为-1.求前缀和如果1的个数大于0的个数,那么就把整个串翻转然后取反,推一下就可以知道结果不会变。CF1646F这题我写了半天发现假了;一开始看了样例很容易想到,每个人每轮都把自己不需要的牌往下......
  • 宋红康MySQL笔记
    MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板https://www.bilibili.com/video/BV1iq4y1u7vj?p=43&vd_source=ecbebcd4db8fad7f74c518d13e78b165HAVING的使用#练习:查询各个部门中最高工资比10000高的部门信息#错误的写法:SELECTdepartment_id,MAX(salary)FROMem......
  • Halcon学习笔记——Day1
    题外话:最近因为项目需要halcon,所以开始学习一下halcon,顺便记录一下学习的笔记,如果感兴趣就给个关注,后续我会持续更新关于halcon的学习笔记;一、视觉包含的学科:1、数学2、软件3、图像4、光学5、控制6、电气二、视觉需求1、识别定位2、测量(2D、3D)3、缺陷(外观检测)......
  • 2024 暑假学习笔记
    向量我们定义向量是多维空间中一条带方向的线段,由于不太需要考虑其绝对位置关系,只考虑相对位置,一般都是平移到原点然后记录终点的坐标,记为\(\vecx=(a_1,a_2,...,a_n)\)。一般来说我们只探讨二维向量,因为是比较容易想的。比如说:我们可以称这个向量为\(u\),也可以表示为......