首页 > 其他分享 >杂题乱做

杂题乱做

时间:2023-05-24 21:48:10浏览次数:48  
标签:子树内 sum 个数 杂题 我们 log

给一棵有根树,求距离 \(x\to y\) 的链不大于 \(d\) 的点的个数。保证 \(x\) 是 \(y\) 的祖先。

\(d\le n,q\le2e5\)。

冷静分析一波,我们发现假如我们设 \(f_{u,d}\) 表示 \(u\) 子树内距离不超过 \(d\) 的点的个数,我们要算的就是 \(\sum_{u\in x\to y}f_{u,d}-f_{u,d-1}+f_{x,d-1}\)。

这个东西很好看啊!我们现在只需要算 \(\sum_{u\in x\to y}f_{u,d}\) 了,也就是只需要算 \(\sum_{u\in 1\to y}f_{u,d}\)。

这东西长得一脸二维偏序的样子啊!一开始我胡了一个线段树合并 + 历史和的神秘做法,不知道能不能写,但反正很难写。

我们这里考虑另一种式子的意义。把上面的式子写成 \(\sum_{u\in x\to y}f_{u,d}-f_{son,d-1}\),发现这个东西就是 \(u\) 的子树去掉一棵的这么一个东西啊!

轻重链剖分。注意到轻儿子的大小总数是 \(O(n\log n)\) 的,我们考虑统计一个 \(g_{u,d}\) 表示 \(u\) 的轻儿子子树内距离不超过 \(d\) 的点的个数。这个可以暴力 gank 上去。

然后我们先做个链上前缀和看看我们目前得到的东西跟我们想要的有多大区别。我们发现,在轻边处我们会多算一个轻儿子少算一个重儿子,但这只有 \(O(\log n)\) 个,我们特殊处理即可。

实际上写起来有一车要离线下来的询问,很难写,所以我没写

注意到我们的询问少一些,修改多一些,好像有 \(O(n\log n)\) 算法?(Scaling?)

标签:子树内,sum,个数,杂题,我们,log
From: https://www.cnblogs.com/PYD1/p/17429589.html

相关文章

  • Polynomial 杂题
    pjudgects比赛,什么都不会暴力也打不出啥,自闭了。下午做一些杂题回一回神吧,可能不太算杂题因为你发现大部分都是Poly。UOJ424集训队作业2018count同构等价于笛卡尔树同构,而所有的数都出现过的要求是不必要的(因为可以等价成一个\([1,m]\)都出现的序列)。那么考虑对笛卡尔树......
  • 2023.5 杂题记录
    2023.5.18开始记的。一道校赛的题(Easy,概率期望DP)题目链接。有一个长度为\(n\)的字符串\(s\),\(s_i\)为o、x、?中的一个。每个?都等概率替换成o或x。设填完之后o连续段长度为\(a_1,a_2,\cdots,a_m\),则对于\(k=1,2,3\),总贡献为\(\sum_{i=1}^ma_i^k\),对\(k=1,2,......
  • 22.3 杂题
    WC2021斐波那契这种分析的方法太经典了。设\(f_0=0,f_1=,f_{n}=f_{n-2}+f_{n-1}\),\(f_n\)就是常见的斐波那契数列,易得\(F_n=af_{n-1}+bf_{n}\)。于是我们只需找出最小的\(n\)使得\(a'f_{n-1}\equivb'f_{n}\pmodm\),如果\(m\)是质数我们可以直接预处理(这里用到结论\(......
  • 23.5 杂题
    CF543EListeningtoMusic先稍微转换问题,对于所有\(a_i<x\),相当于给所有\(\in[i,\min(i+m-1,n)]\)的右端点答案加一。最后就是求一个区间\(\min\)。于是有一个离线扫描线的\(n\logn\)做法。可持久化+标记永久化,可以做到\(O(n\logn)\)时空。考虑分块。对于散块询问,我......
  • 杂题选解
    Tag结论(包括定理,指的是通过题目信息或者用到的知识点推出一个性质的题目)二分暴力贪心(贪心题或者题目中用到贪心)位运算(下分具体运算)数论技巧(做题通用的小trick)构造计算几何点到线段的距离模拟图形模拟字符串(指的是问题载体是字符串的题目)图论最短路dijkst......
  • 杂题
    P1438无聊的数列如果用上差分的思想,就变成了单点修改和区间查询,变得很容易写。但是我没有这样想,我直接暴力做,记两个懒标记k和d分别表示:该子树表示区间全部加上了首项是k,公差是d的等差数列。维护的时候pushdown都很容易写,但是调了很久。因为没注意到懒标记定义中的全部,也就是......
  • 5月杂题
    5.7做了什么:坐飞机,大吃大喝。P9139[THUPC2023初赛]喵了个喵II:先考虑每个出现两次怎么做,发现只要每对区间不是包含关系即可。回到此题,相当于要把4个数分成两组,有\(1-2,3-4\),\(1-3,2-4\)两种选法。2-SAT+主席树优化建图即可。5.8做了什么:模拟赛,发的题,CF。LOJ647......
  • 几道好欺负的杂题
    P7325[WC2021]斐波那契会同余+set可以解决改题。CF1264D1BeautifulBracketSequence(easyversion)性质题,找到性质后就不会很难了CF1264D2BeautifulBracketSequence(hardversion)上一道题的强化版,如果你会范德蒙德卷积就很简单了,否则需要考虑组合意义来优化dp......
  • cf 数据结构杂题
    rand一些题目做一下,持续更新平衡树gym101261APersistentDequeYouneedtoprocessthefollowingqueries:Bvx—Addxtothebeginningofthedequewithversionv.Evx—Addxtotheendofthedequewithversionv.<v—Removethefirstelemen......
  • 杂题记录
    2023.4.27下午LZY讲题ICPC2022Shenyang-G题意给定\(n\)个点的两颗树\(T_1,T_2\)。\(m\)次询问\((a,b)\),求\(\max\limits_x\{d_1(a,x)+d_2(x,b)\}\)。\(n\leq10^5,q\leq5\times10^5\)。提交地址https://codeforces.com/gym/104160/problem/G。分析考虑若给定......