Loading

省选联测31-36

省选联测36

树的解构

发现砍掉一个点的入边时,该点有 \(1\) 的概率做贡献,该点儿子节点有 \(\frac{1}{2}\) 的概率做贡献,该点的孙子节点有 \(\frac{1}{2}\times \frac{2}{3}\) 的概率做贡献,转化贡献方式,设根节点深度为 \(0\) ,则一个点 \(u\) 的贡献为 \(H(dep_u)\),其中 \(H(n)\) 为调和级数

小 T 与灵石

每次操作对点的贡献 \(f(u)\) 相当于给出的点集直径中心到点 \(u\) 的距离加直径一半 最后跑多源最短路即可

小 S 埋地雷

太神了,咕了

省选联测35

空洞骑士专场

遗忘十字路

每次均摊,再维护多选一次的最大贡献即可,因为均摊剩余的一定不到儿子个数,所以一定够用

鹿角虫道

大大力状压,预处理一个 \(h[s]\) 表示点集 \(s\) 构成一个环的方案数,\(f[s][c]\) 表示把点集 \(s^c\) 挂在点集 \(c\) 上的方案数,\(g[s]\) 表示以点集 \(s\) 中编号最小的点为根,其他点都跟它直接相连的答案,\(ans[s]\) 表示答案,大力转移即可

生命血

拟阵,搞不懂,咕了

省选联测34

大订单

大大力状压,每次按顺序加入一个数考虑其是否另开一段,二进制,三进制,二倍二进制都会寄掉,用四进制卡常硬卡

省选联测33

李四

方法一:预处理每个可用点集里每个点是否可到达,可以用并查集,用递推方式处理集合 \(s\) ,假如集合 \(s'\) 只比 \(s\) 少了一个元素 \(x\),那么最多只用加入 \(n\) 条边,预处理复杂度 \(\mathcal{O}(n2^n)\),该做法空间时间常熟都巨大无比,并查集数组得开char或者状压掉

方法二:和chino的预处理思想相同,根据不合法就不会转移到最终状态(跟连续段dp相似?),认为只要这个点周围有可用点这个点就可以被到达,发现非法一定转移不到最终状态(被封里面最后一个点无法转移),然后去掉预处理也可以搞))

王五

出现的长度只有 \(\sqrt{m}\) 种,每种长度扫一遍用桶统计即可

赵六

Dag 上支配树即可

省选联测32

光明

发现 \(f\) 的值最大不过 \(n\),开桶统计,对每个点维护距离它距离为某一距离的点的数量,用深度之差做到差分,具体来讲,当某一处位置的值增多,就对原来的值和之后的值的桶做修改,用长剖合并可以做到 \(O(n)\),其实启发式合并跑出来就是长剖)))

游戏

大力生成函数,用差分形式或者看成不断卷积都行,式子差不多,最后大力提取系数,对 \(n/k\) 的值分治即可,exLucas 或者矩阵快速幂

省选联测31

西克

从下到上可以乱搞,但是从上到下就烷基八氮,树剖思想存起来经过路程,每条链上二分即可,预处理提前倍增点 \(i\) 改变 \(2^j\) 次颜色后在哪个点,正反都处理一遍

二分和倍增依据是 \(dfn\) 序连续保障结果一定还在链上

苯为

列示再转化即可,具体忘了

总结

\(Kaguya\) 大佬身上学到的一点经验:

树剖是一种思想,是一种类似于分块的思想,是一种把树上路径分段处理以达到均摊复杂度的思想

再某些要求下的预处理上可以达到非常好的效果

posted @ 2023-02-20 20:52  hzoi_Sakura  阅读(45)  评论(2编辑  收藏  举报