![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串
文章平均质量分 69
刘心奶黄包qaq
这个作者很懒,什么都没留下…
展开
-
字符串刷题(day1)题解
最少的反转次数就是字典序最大的字符后面的字符数量(每一次右移会有一个比最大字典序字符小的字符,移动到它的前面,当最大字典序的字符移动到子序列末尾的时候,再次移动就可以视为没有移动)。每个字符串可以看做由一个前缀字符和一个后缀字符串组合而成,不同长度的后缀字符串对答案的贡献是相同的,但是前面的字符是不同的,所以只用记录前面出现字符的种类即可。所以不难发现,以n的因数为循环节是不可以的,所以要想使不相同的字符最少,就要以n的最小非因数大小为循环节大小。为两者不同的字符对的对数,s为相同的字符对的对数。原创 2024-04-24 10:06:20 · 675 阅读 · 0 评论 -
CF round 900题解 A~D
得出这一点后,在一个区间内翻转,若一个区间翻转两次的话,相当于没有变,他的影响就可以被忽视,所以就可以用一个差分数组,记录每个区间的翻转次数,奇数次的区间就需要翻转,并且只用遍历区间的一半就行了,因为翻转是对称的。首先这个题不能暴力求解,即使我们通过二分找到了给定的x所在的区间,然后每次都要翻转,时间复杂度也依旧在O(n*q)。求出1~k和 n-k+1 ~n 的前缀和,判断x是否在这两个前缀和之间,如果在就存在,否则就不存在。奇数+奇数=偶数,奇数*3=奇数,奇数不能整除偶数,所以数组的构造方法就找到了。原创 2023-12-18 14:22:27 · 1038 阅读 · 0 评论 -
题解|#F. Kirei and the Linear Function#
这个题需要最终结果对9取模的值,那么我们不如过程中就对9取模,这样区间值的和就是0~8范围内了,然后两个for对大小为0 ~8的枚举就好了。前置知识:任意一个十进制数对9取模,就等于对这个数的所有数位的加和取模。用pair来存下两个左端点的点对就行了。原创 2023-12-14 11:29:24 · 45 阅读 · 0 评论