![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链分治
FSYo
我不去想是否能够成功,
既然选择了远方,
便只顾风雨兼程
展开
-
「AHOI / HNOI2018」毒瘤 (DDP)(链分治)
LOJLOJLOJ 传送门 题解:首先考虑一棵树怎么做,就是树形 dpdpdp,然后我们可以枚举每一条边怎么选,显然有 3 种情况 进一步发现只需要枚举两种,即强制 uuu 选 vvv 不选,和强制 uuu 不选 vvv 随意 那么现在的问题就是每次 banbanban 掉一些点选一些点不选,动态更新根节点的 dpdpdp 值 然后把转移写成矩阵的形式链分治,由于可以除 000 所以手写了一个用...原创 2020-02-09 17:33:03 · 572 阅读 · 0 评论 -
【BJWC2018】Border 的四种求法(SAM)(线段树合并)(链分治)(DSU on Tree)
传送门 题意:给一个字符串,求区间 borderborderborder 题解: 对于一个串 S[l...r]S[l...r]S[l...r],求的就是 max{i∈[l,r)∣lcs(i,r)≥i−l+1}max\{i\in[l,r)|lcs(i,r)\ge i-l+1\}max{i∈[l,r)∣lcs(i,r)≥i−l+1} 这启示我们从 rrr 开始跳 failfailfail 树,到一个点...原创 2020-01-26 12:39:00 · 400 阅读 · 0 评论 -
【ZJOI2007】捉迷藏(链分治)
传送门 闲着无聊打算用链分治写一遍,结果因为脑瓜子不好用调了两个多小时。。。 其实是第一次自己打链分治 用 setsetset 维护轻儿子向下的最长链 考虑最后的路径一定经过某一条重链(或是一个点) 让这条路径在这条路径在这个重链上统计 维护向上的最长链和向下的最长链然后拼接,跟最大子段和差不多 #include<bits/stdc++.h> #define cs const #def...原创 2020-01-17 23:41:33 · 317 阅读 · 0 评论 -
CF1010F Tree(链分治)(分治FFT)(DSU on tree)
CF1010F Tree 首先这道题不是二叉树也可以做 题目要求一个点的权值必须比所有儿子都大,于是可以转换为对每一个点分配一个 [0,x][0,x][0,x] 的权值,最终权值是子树的和 这个的方案数只与集合大小有关 为 (x+S−1S−1)\binom{x+S-1}{S-1}(S−1x+S−1) 于是问题转换为统计树上大小为 kkk 的连通块个数 已经可以 n2n^2n2 dpdpdp 了 ...原创 2019-12-02 23:06:41 · 558 阅读 · 0 评论