cf
文章平均质量分 56
泠楠子
想写一点能让自己记住的东西
展开
-
Educational Codeforces Round 161 (Rated for Div. 2)A~E
问能否构造一个匹配串能和a、b匹配却不能和c匹配。如果a和b某一位置上字母相同且和c这一位置上字母不同的话一定能构造出来还有如果a、b、c某一位置上字母都不同的话匹配串放c这一位置上的大写字母也一定能构造出来。原创 2024-01-19 23:19:29 · 449 阅读 · 0 评论 -
Codeforces Round 900 (Div. 3) F
最坏复杂度大约在1000 * 2e4 = 2e7左右,分解质因数复杂度为1000*sqrt(1e6)a、n互质说明a与n在>=2范围内没有公共因子,d(a * n) = d(a) * d(n)只要d(n)的质因数形式上的每一项的指数都小于等于n的质因数形式上的指数就说明可以除尽。=1时d(a * n)不一定等于d(a) * d(n)所以问题转化为d(n)能否整除n,由于n可能很大不能直接算。gcd(a, n) = 1并且d(a * n) == n。d(a)可以是任意数,只要a的因子是n中没有的就行。原创 2023-09-27 20:59:31 · 99 阅读 · 0 评论 -
Educational Codeforces Round 155 (Rated for Div. 2) - D Sum of XOR Functions
s[i]表示异或前缀和,l~r间的异或和为s[r] ^ s[l - 1] ---->对于一位上的1,设当前为r,左边的为0的点为l,那要承的数就是(r - l),这样就算出来了对于每一个数的每一位的贡献 时间复杂度 O(31 * n)对于整体上的异或操作可以转化为31个二进制位上的操作,每一位再×上。对于每一位1,只有左端点的左边一位为0时才有值,才可以计算进去。对于每一位0,只有左端点的左边一位为1时才有值,才可以计算进去。如果这样的l有k个,就是k * r - (将一次操作拆为31次来方便操作。原创 2023-09-26 19:59:53 · 238 阅读 · 2 评论 -
Codeforces Round 897 (Div. 2) D. Cyclic Operations
对于任何k >= 2的情况,链是可以任意长的,比如1 2被2 3覆盖, 2 3被 3 4覆盖,以此类推,只要它指向的那个环的长度等于k就是对的。i向a[i]连边,最终一定会连出一个环,有可能存在着一条链在后边跟这,这个环的长度一定要等于k才是满足题意的。出现链的原因就是链在成环的路上被另一条成环的路覆盖了。k=1的时候特判a[i] = i。写的时候死活想不到特判,啊啊啊啊啊。原创 2023-09-12 10:21:06 · 238 阅读 · 0 评论 -
Codeforces Round 895 (Div. 3) A ~ F
b[r] ^ b[l - 1]就等于 b[l - 1] ^ b[l] ^ ... ^ b[r] ^ b[l - 1] = b[l] ^ ... ^ b[r];对于第一个操作,区间修改,如果一个数x的对应位置上的树为1,被修改后变成0,就相当于x没被启用,变成0了,就相当于异或x本身,如果l == r且l是奇数的话,可以求l的因子,设因子为d,x - d 和 d 都可以被d整除,这样也可以求出一组解。如果一个数x的对应位置上的树为0,被修改后变成1,就相当于x被启用了,变成了1,也相当于异或x本身。原创 2023-09-08 00:51:33 · 793 阅读 · 0 评论 -
Codeforces Round 893 (Div. 2) A ~ C
既然要求d的种类多,那就尽可能的增加d中数字的种类数,怎么增加呢?从小往大加就好了,比如说2后面放4,3后面放6,4后面放8,就像这样连续下去d中的种类数一定是最多的。每隔d位至少要吃一次饼干,其实可以看商人与商人之间的距离是多少,商人与商人之间的距离除d就是这段距离内吃的饼干数,可以用一个数组来记录每个商人前有多少个空位。博弈、最优策略一定是先去按都能按的按钮,按完之后再按自己的。注意第一个商人在不在第一个长椅旁这里需要多考虑一下,记得特判。然后枚举计算删掉每一个商人后的贡献就好了。原创 2023-08-16 04:30:00 · 287 阅读 · 2 评论