首页 > 其他分享 >2024.7.1 之后的做题小记

2024.7.1 之后的做题小记

时间:2024-07-01 16:52:50浏览次数:1  
标签:log 包含 2024.7 线段 做题 做法 节点 小记

7.1 P7124 [Ynoi2008] stcm

维护一个 \(O(n\log n)\) 级别的子树补不删除莫队。

Solution 1:

考虑菊花图,忽略根节点,一个显然的做法是把这些节点扔进线段树,然后遍历某个节点时候就把它的兄弟节点内所有点加进来。

这个做法是线段树所有节点大小和即 \(O(n\log n)\)。

然后在一条链上做法简单,直接冲下去即可。

现在集合两种做法,重链直接冲,轻子树想办法用线段树合并一下。

不过考虑每颗子树大小不一样,直接建线段树,复杂度假假假。

改用合并果子式合并法建树,这叫 哈夫曼树(Huffman Tree),子树和小于 \(O(n\log n)\),复杂度真真真。

然后重链权值视为 \(1\),再拼接一下,就好了。

不过不好写,我是不想写的。

Solution 2:

想象拍平树,现在变成了序列上中间缺一节的不删除莫队。

看起来更困难,但是树上区间有一重要性质:任意两区间要么不交要么包含。

基于此得到一个分治做法:

\([l,r]\) 解决所有抠掉区间被它包含的询问。

只考虑包含 mid 的询问,不包含的直接递归处理。

然后你发现,所有包含 mid 的询问,由于上面那个性质,两个端点移动是单调的!

直接暴力移动即可,每轮 \(O(n)\),总共 \(O(n\log n)\),非常好写!!!

标签:log,包含,2024.7,线段,做题,做法,节点,小记
From: https://www.cnblogs.com/FunStrawberry/p/18278402

相关文章

  • 2024.7.1 初识Linux
    1、Linux安装:(1)VmwareWorkstation安装(2)Centos7系统安装(3)使用Mobaxterm远程操控Linux虚拟机2、Linux命令(1)ipaddress查看本机的ip地址(2)cal查看日历用法:cal[选项][[[日]月]年]选项:-1,--one只显示当前月份(默认)-3,--three显示上个月、当月和下......
  • 2024.7~8 训练日记
    \(\color{grey}\bigstar\)可以秒杀的题。\(\color{green}\bigstar\)思考一会儿后可以秒的题。\(\color{blue}\bigstar\)需要较长时间思考的题。\(\color{#F1C40F}\bigstar\)看题解、稍加指点就会做的题。\(\color{red}\bigstar\)看题解后需要较长时间消化,甚至现在都没有......
  • 2023.10.28 做题记录
    2023.10.28[NOIP2018提高组]铺设道路题目传送门选择一个区间进行“填坑”操作;所以我们的贪心策略是:若a[i]>a[i-1],sum+=a[i]-a[i-1];假设现在有一个坑,但旁边又有一个坑。你肯定会选择把两个同时减1;那么小的坑肯定会被大的坑带着填掉。所以只要计算每个坑......
  • 博弈论小记
    博弈论目录博弈论公平组合游戏\(N/P\)\(SG\)函数\(SG\)和Nim游戏EasyGameTakeAwayHungergameStaircaseLasker'sNim翻硬币问题例题P4363[九省联考2018]一双木棋chess题目描述solutionP5363[SDOI2019]移动金币题目大意solutionP3185[HNOI2007]分裂游戏题目大意solution博......
  • CF VP小记
    目录CF1956FNeneandthePassingGame题目大意solutionCF1942EFarmGame题目大意solutionCF1942GBessieandCards题目大意solutiontipsCF1943D2题目大意solutionE3.Trails题目大意solutionCF1956FNeneandthePassingGame题目大意给定\(n\)个点,每个点有两个系数\([......
  • java小记-随机数、数组
    练习4:①随机数:类似scanner键盘录入的三步:答:(只能猜一次)如果继续猜呢:添加循环:注意:添加新的功能:保底,抽的次数到某个时刻,直接猜中,不管结果几何。②数组:......
  • QEMU + Vscode + Arm Arch's Linux调试小记
    QEMU+Vscode+ArmArch'sLinux调试小记​ 前几天看到了一篇讲授如何调试ARMLinux内核的文章,这里现在记录一下调试ARMLinux内核的办法下载QEMU​ 对于ArchLinux用户而言,没有必要自己编译,直接上AUR源下载就行。我自己有打算研究和调试多个架构,所以我自己下载了:yay-Sqem......
  • 2024.6 做题记录
    395.CF717AFestivalOrganization&P5320[BJOI2019]勘破神机396.square869120Contest#3GSumofFibonacciSequence特判\(n=1\)。将\(n,m\)都减\(1\),答案即为\[[x^m]\frac{1}{(1-x-x^2)(1-x)^n}\]若能把这个分式拆成\(\frac{A(x)}{(1-x)^n}+\frac{......
  • git submodule小记
    这是一篇记录gitsubmodule中存在的坑的文档引用一个模块的命令gitsubmoduleaddhttp://your-submodule-url.com/local/path这个命令可以将一个子模块添加到当前的主仓库中(注意,这样添加的是最新版的) 这个gitsubmodule有一些坑爹的地方当你本地添加了一个子模块后,一旦......
  • 2024.6 -> 做题记录与方法总结
    2024/6/151.P4363[九省联考2018]一双木棋chess经典轮廓线dp使用的关键在于发现状态数并不多,用\(n\)进制数来表现轮廓的状态\(dp\)的转移和轮廓线息息相关如图,蓝色轮廓线状态只能转移到含一个紫色的状态因为$1\leqn,m\leq10$用\(11\)进制压缩状态就可......