摘要: 「JOISC 2021 Day3」聚会 2 首先当 \(k\) 为奇数时答案显然为 \(1\)。 否则考虑选择两个子树,把 \(k/2\) 个点放到其中一个子树,剩下的放到另一个中,那么要求就是这两个子树大小必须 \(\ge k/2\),期待值就是这两颗子树根节点的距离 \(+1\)。 直接点分治, 阅读全文
posted @ 2022-04-10 09:46 zqs2020 阅读(12) 评论(0) 推荐(0) 编辑
摘要: [JSOI2011] 柠檬 复习一下斜率优化。 首先最优方案中每一段左右端点贝壳大小显然相等,于是记 \(sum_i\) 为 \([1,i]\) 中所有大小为 \(s_i\) 的贝壳个数。 朴素方程为 \(f_i=\max\{f_j+(sum_i-sum_{j+1}+1)^2s_i\}\) 按照斜率 阅读全文
posted @ 2022-03-27 17:35 zqs2020 阅读(11) 评论(0) 推荐(0) 编辑
摘要: Day -8 NOI Online 爆炸,100+0+0 @goujingyu T2 乱搞 90 分直接 200+ 比赛的时候 T3 想都没去想(因为开始以为 \(m=n\)),赛后一看 \(m=4\) 发现是个三维偏序板子,我真厉害哈哈哈哈 然而这并不能改变菜鸡的本质,因为 T2 不会是真的不会 阅读全文
posted @ 2022-03-26 21:51 zqs2020 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 考虑一维的情况,我们选择的最左边那个点一定是所有线段的 \(\min\{r_i\}\),因为要在没有任何线段在它左边的情况下使得左端点尽量靠右。同理最右边那个点一定是所有线段的 \(\max\{l_i\}\)。 因此枚举选这两个点中的哪个,删去与这个点有交的线段,递归深搜即可。 扩展到二维的情况,最 阅读全文
posted @ 2022-03-24 12:15 zqs2020 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 强制在线AC自动机,我们考虑二进制分组。 每插入一个串,把它建成一个 AC 自动机,放入栈中,然后当栈顶两 AC 自动机单词数相等时暴力合并两个自动机。 这样建出来 AC 自动机的尺寸就是当前总单词数的二进制表示,复杂度为 \(O(n\log n^2)\),但是带个26的常数,所以跑得比较慢。 不光 阅读全文
posted @ 2022-03-16 19:26 zqs2020 阅读(10) 评论(0) 推荐(0) 编辑
摘要: T1 按逆时针顺序给你一个凸包,让你求离每个点最远的点,有多个输出编号最小的。 点数在 \(5\times 10^5\) 以内。 这个题是旋转卡壳板子,但是没学过旋转卡壳怎么办呢,其实整体二分也是可以做的。 可以发现,当点 \(i\) 逆时针移动,离 \(i\) 最远的点也会跟着逆时针移动。 所以这 阅读全文
posted @ 2022-03-12 20:59 zqs2020 阅读(8) 评论(0) 推荐(0) 编辑
摘要: \(1\le n\le 10^5,1\le m\le 20\)。 首先列出 dp 方程:\(f_{i,j}\) 表示将前 \(j\) 个数分为 \(i\) 段最小代价。 转移 \(f_{i,j}=\min\{f_{i-1,k}+\text{cost}(k+1,j)\}\)。 容易发现,当 \(i\) 阅读全文
posted @ 2022-03-06 16:31 zqs2020 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 预处理出 \(f_i\) 表示最大的使得在加入所有 \([1,i)\or [j,m]\) 中的边后存在奇环的最大 \(j\)。 显然 \(f\) 满足单调性,于是可以整体二分。 对于分治区间 \([l,r]\),已知所有 \(\{f_l...f_r\}\in [x,y]\),那么暴力计算出 \(f_ 阅读全文
posted @ 2022-03-06 09:55 zqs2020 阅读(5) 评论(0) 推荐(0) 编辑
摘要: \(1\le n,m\le 2\times 10^5\)。 考虑一个简单直接的建图,若将 \(a\) 颜色作为树根需要将 \(b\) 颜色变为 \(a\),从 \(a\) 向 \(b\) 连边。 枚举每个颜色 \(a\) 的所有点,用类似虚树的方法找出所有 \(a\) 颜色依赖的颜色并连边。连边可以 阅读全文
posted @ 2022-02-20 11:23 zqs2020 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 预处理出点 \(u\) 往上坐 \(2^i\) 次车后能到达的深度最浅节点 \(f_{u,i}\),查询时把两个点在深度大于 lca 时一直倍增向上跳,这时只需要查询是否有车直接经过两点。相当于这辆车的两个端点分别在这两点的子树内,用 dfs 序将其转化为二位数点即可。二位数点可以用桶排。 考虑如何 阅读全文
posted @ 2022-02-05 13:58 zqs2020 阅读(16) 评论(0) 推荐(0) 编辑