摘要: 题目链接 不错的点分树题。我之前只听说过有点分树这个东西,没做过几个题。 先考虑图是一棵树的情况怎么做。我们对这棵树建立点分树。**所谓点分树,就是先对树进行重心分治(点分治),然后把相邻两层的重心连边形成一棵新的树。**容易发现新的树的高度是$O(logn)$的。看一开始重心分治的过程,在重心分治 阅读全文
posted @ 2022-11-03 21:40 LegendStane 阅读(212) 评论(0) 推荐(1)
摘要: 求点赞 T1. 假期计划 (holiday) 这个题作为t1可一点都不简单啊。 先用bfs $O(nm)$求出任意两点之间的最短路,这样就可以判断哪些点对可以排在一起。注意到第1、4个景点是对称的,第2、3个景点是对称的。我们对于每个景点求出当它作为第2个景点时,第1个景点的可能集合,令第i个点的这 阅读全文
posted @ 2022-11-02 11:53 LegendStane 阅读(2049) 评论(0) 推荐(1)
摘要: 长链剖分也是一种树上的链剖分的方法。与重链剖分不同,长链剖分对于树上的每个点,取子树深度最大的儿子,向它连重边,其他的儿子向它连轻边。容易发现一个点所在的重链的长度至少为它子树的深度。 利用这个性质可以$O(nlogn)$预处理,$O(1)$求树上任意节点的k级祖先。比如当前要询问点x的k级祖先(k 阅读全文
posted @ 2022-10-27 17:51 LegendStane 阅读(396) 评论(0) 推荐(1)
摘要: Div1A / 2C. Make Nonzero Sum 令最后每个$a_i$的系数为$c_i$($c_i=1/-1$),发现只要满足$c_1=1$(下标从1开始),且c中没有两个-1相连,就一定能找出一种划分方式。那我们先令所有$c_i$都为1,再进一步把一些1改成-1。如果全是1时序列的和sum 阅读全文
posted @ 2022-10-24 11:30 LegendStane 阅读(439) 评论(1) 推荐(2)
摘要: 最近一个月我的vscode突然开始发癫,正常情况下,在编辑器中输入一段字符应该会弹出自动补全的框框(使用C/C++): 但是不知道从何时起,我的vscode弹出的框里会出现只有C++关键字的情况。每几秒钟发生一次,严重破坏使用体验。 据说是插件冲突的问题,卸载了绝大多数插件,无效。 VS Code整 阅读全文
posted @ 2022-10-18 11:54 LegendStane 阅读(2234) 评论(0) 推荐(0)
摘要: 点我看题 昨天刚打的ARC,题目质量还是不错的。 A - Equal Hamming Distances 对于一个位置i,如果$S_i=T_i$,那么不管$U$的这个位置填什么,对到$S$和$T$的海明距离增量都是相同的,所以这种位置一定填$0$更好;否则,这个位置填$0$或$1$分别可以给到$S$ 阅读全文
posted @ 2022-10-17 15:50 LegendStane 阅读(314) 评论(0) 推荐(2)
摘要: 点我看题 求点赞 A. Maxmina 首先序列全0的情况肯定是NO。否则,如果$k\ge 3$,则在序列中随便找一个1,把他左边和右边分别用第一种操作不断缩,直到序列长度为k为止,最后用一次2操作变成一个1;如果$k=2$,直接不断用2操作把序列缩成一个元素即可。所以最后的结论就是只要序列中有1就 阅读全文
posted @ 2022-10-16 14:16 LegendStane 阅读(335) 评论(1) 推荐(3)
摘要: 点我看题 求点赞/kel/kk A - Continuous 1 对于每一个长度为k的区间,它合法当且仅当输入序列中所有出现的1都在这个区间内,所有出现的0都在这个区间外。用前缀和判断一下即可。注意题目要求的是合法区间只有一个,而不是存在就行。 时间复杂度$O(n)$。 点击查看代码 #includ 阅读全文
posted @ 2022-10-11 11:55 LegendStane 阅读(193) 评论(0) 推荐(0)
摘要: 求点赞 点我看题 A. Ela Sorting Books 从前往后一位一位确定答案。用一个数组记录当前每个字母库存的数量,要确定答案的某一位时,枚举前$min(\frac nk,26)$个字母,找到第一个库存为0的字母,则当前这位的答案就是这个字母。然后把字典序在这个字母之前的字母库存都-1就行。 阅读全文
posted @ 2022-10-08 12:55 LegendStane 阅读(540) 评论(0) 推荐(2)
摘要: 很久没rated打过cf的比赛了,这次打得还行,至少进前100了 求点赞 点我看题 A. Glory Addicts 把类型0的数放进数组a里,类型1的数放进数组b里。如果$|a|=|b|$,你可以把所有数里最小的放在第一个,其他的交错排列,这样除了最小的其他都能取到2的系数。这个需要特判。否则假设 阅读全文
posted @ 2022-10-01 12:41 LegendStane 阅读(1182) 评论(1) 推荐(4)
摘要: 点我看题 G - Sequence in mod P 稍微观察一下就会发现,进行x次操作后的结果是$A^xS+(1+\cdots +A^{x-1})B$。如果没有右边那一坨关于B的东西,那我们要求的就是满足$A^x \equiv \frac GS$的最小的x(离散对数)。有一个叫BSGS的东西是专门 阅读全文
posted @ 2022-09-25 21:25 LegendStane 阅读(175) 评论(0) 推荐(0)
摘要: 几年前整理的东西,要不就发到网上吧 不过现在这些东西里面也有很多考得比以前少了 卡特兰数 $f(i)=\sum_\limits{i=0}^{n-1}{f(i)f(n-i-1)}$ 其中$f(0)=1$ $f(n)=$一个凸$n$边形用不相交的对角线划分成三角形的方法种数。 证明:对于一条边,在另外的 阅读全文
posted @ 2022-09-17 09:28 LegendStane 阅读(150) 评论(0) 推荐(0)
摘要: 点我看题 题目质量一言难尽(至少对我来说 所以我不写D的题解了 A - mod M 发现如果把M选成2,就可以把答案压到至多2。所以答案只能是1或2,只要判断答案能不能是1即可。如果答案是1,那么M必须是所有任意两个数的差的GCD的因子,只要检查这个GCD是否是1即可。实现的话之间取所有相邻两个数的 阅读全文
posted @ 2022-09-14 21:55 LegendStane 阅读(336) 评论(0) 推荐(1)
摘要: 点我看题 A - Max Mod Min 非常诈骗。一开始以为要观察什么神奇的性质,后来发现直接模拟就行了。可以证明总操作次数是$O(nlog a_i)$的。具体就是,每次操作都会有一个数a被b取模,然后变成a%b。注意到a%b是$\leq \frac a2$的,并且a被操作之后会变成整个数据最小的 阅读全文
posted @ 2022-09-05 21:59 LegendStane 阅读(444) 评论(0) 推荐(1)
摘要: 题目 本题需要用到的结论: 一.兰道定理 二.如果$n\geq4$,那么$n$个点的强连通竞赛图存在$n-1$个点的强连通子图。 证明: 现在有一个n-1个点的竞赛图(不一定强连通,称其为原图),加入n号点,得到的n个点的竞赛图是强连通的。将原图强连通分量分解,按照拓扑序排好,称为$a_0 \cdo 阅读全文
posted @ 2022-08-31 13:51 LegendStane 阅读(188) 评论(1) 推荐(1)