
codeforces题解
文章平均质量分 87
我梦见一片焦土
这个作者很懒,什么都没留下…
展开
-
CF1979B XOR Sequences
的每一个二进制位要么同时改变,要么同时不变。自增之后仍然满足条件,那么在自增过程中,从最低位开始的连续相同二进制位的个数为。能够自增的次数显然是最多的。考虑公共子序列如何形成。所有相同的位全部变为。原创 2024-09-17 17:48:31 · 772 阅读 · 0 评论 -
CF1787B Number Factorization
一定成立,所以要尽可能地将质因数乘在一起组成更大的数,加在一起得到最后的解。分解成质因数,要求是加和尽可能大,那么可以让所有的指数都是。原创 2024-09-17 18:08:04 · 405 阅读 · 0 评论 -
CF1726B Mainak and Interesting Sequence
所以一个数为偶数,一个数为偶数。两个数肯定是不一样的,异或和的序列肯定不是。为偶数:我们的思路大概还是凑出偶数个相同的数,这样异或和就是。个相同的数了,他们只有一个空序列,而空序列的异或和为。个数,这两个数的和要是奇数,因为偶数加奇数才是奇数。,但是这种在不能整除时是错误的,最后的数组之和不是。个相等的数了,偶数个相同的数异或和一定是。的简单方法:偶数个相同的数进行异或。,这时候只用满足分出的这些数之和是。一定是偶数,这时候我们就维护前。为偶数,这个显然是不成立的,从。是个偶数,我们可以设一个。原创 2024-09-17 18:08:34 · 965 阅读 · 0 评论 -
CF1905B Begginer‘s Zelda
根据题目,每次操作可以将一条链缩为一个点。个叶子结点,在这种情况下是最优的。观察发现,每条链最多可以覆盖。因此,若叶子结点的数量为。原创 2024-09-17 17:53:55 · 487 阅读 · 0 评论 -
CF1945C Left and Right Houses
枚举划分的点的地方,这样就可以算出来左右两边的满足期望的数量,如果两边都满足了,那就判断要不要更新划分点,注意这里更新的时候要尽可能贴近中心,这里为了判断精度,要把。注意读题,本题对于左右两边的要求是:如果左边有x个人,那么要满足。,所以直接用一个前缀和的办法来判断左右。还有一个小点,就是最左边的路划分点是。的人数都得到了满足,右边同理。原创 2024-09-17 17:52:27 · 1010 阅读 · 0 评论 -
CF1954B Make It Ugly
如果最后能将所有数字变为同一个,则称原数组为美丽的数组、现在给出一个美丽的数组,需要通过移除一些数字,破坏它的美丽,即让其最终无法变为同一个数字。(可以自己思考一下,一个数据一定只能变为与他相邻左右数据相同),比较以上三种方法,找到最短的一种,便是我们的答案了。一个美丽的数组,它的第一个元素和最后一个元素一定是一样的,因为我们变化数据只能选择中间的数,两边无法操作。的数据,将左边的全部移除,这样新的第一个就不等于我们的最后一个了。的数据,把它右边的所有数据移除,这样新的最后一个就不等于我们的第一个了。原创 2024-09-17 17:49:01 · 719 阅读 · 0 评论 -
P3342 [ZJOI2014] 璀灿光华
对于一个发光水晶,将它连接的水晶标号,从该水晶 bfs,若某水晶在相同步数下被访问过两次,那么它必然不是某一方向的直线上的。每个点的标号为最先访问到它的点的标号。这样可以整出发光水晶每个方向的水晶。不用建水晶立方体,因为发光水晶的方向都要枚举一遍,只需知道发光水晶每个方向有哪些水晶就可以了。之后把每个发光水晶朝向枚举一遍,复杂度。原创 2024-09-17 17:38:28 · 580 阅读 · 0 评论 -
CF1867B XOR Palindromes
为奇数,除了上述贡献以外,我们发现中位字符对合法的每次答案贡献是。为偶数,我们观察本来已经对称的字符,每一对字符贡献为。显然最低满足要把所有不对称的改过来,分奇偶讨论。逐位异或,得到一个回文串。为好数:找到一个长度为。你需要输出一个长度为。原创 2024-09-17 17:54:28 · 479 阅读 · 0 评论 -
CF1816B Grid Reconstruction
是偶数,所以终点一定是直接加在费用里的,就填次大的数然后相邻数都是最小的数,既。要想交错和最大,就要相邻数的差尽可能大,那么我们就在起点填上最大的数。,以此类推我们可以发现一种可行的构造,即为第一行为。的相邻数应该是当前剩下的最大数,既。这样的大小交替的偶数,第二行是。这样除了终点以外大小交替的奇数。原创 2024-09-17 18:05:57 · 591 阅读 · 0 评论 -
CF1863C MEX Repetition
发现其实每次的只是相当于上一次平移了一下,因为当前没有的就是刚被替换掉的。于是只需要找到起始的数字就可以了。由于每次移动一个,初始的位置就是。很容易知道,我们在替换时,第一个数总是在上次没出现的数。然后没出现的数就变成了刚才被替换掉的数。但我们可以尝试找一找规律,如下。虽然我们推出了规律,但这玩意是。看到题目,让我们先来模拟一下。原创 2024-09-17 17:55:21 · 1033 阅读 · 0 评论 -
CF1796B Asterisk-Minor Template
的形式,所以可以对于每一个都判断一下就好了。原创 2024-09-17 18:06:33 · 192 阅读 · 0 评论 -
CF1838B Minimize Permutation Subarrays
和原数组这两个排列组合一定会存在,只选1和全选,那么我们的目的就是让其他的组合尽可能不出现。的排列组合,它的子序列一定要包含。大的数字,所以如果我们将最大的。我们来看最容易出现的排列组合是。之间,那么一定无法形成长度为。只要不挨在一起,就不会出现。的位置,判断他们的位置,把。答案就很简单了,找到。首先,不管怎么交换,原创 2024-09-17 18:02:06 · 717 阅读 · 0 评论 -
CF1667B Optimal Partition
那么将其分成两段(左,中右)或(左中,右)两部分的话,结果会更好。值得注意的是排序时,对于前缀和相等的情况,我们要把位置大的放前面,这样我们更新的时候就不会使用位置小的去更新位置大的了(此时该段的总价值为。的话,我们也可以对整个区间进行拆分,若长度是偶数,那么可以分成左右两部分,结果不会更差(时,它加入答案才能获得更大的收益,否则,我们都可以通过拆的方式将它拆成长度为。的情况,会导致错误答案,而实际上根据第二段的分析,价值为。我们是不该考虑的)。时,我们将整个区间再进行拆分,那么得到的结果如果有。原创 2024-09-17 17:37:44 · 820 阅读 · 0 评论 -
CF1513A Array and Peaks
A sequence of nnn integers is called a permutation if it contains all integers from 111 to nnn exactly once.Given two integers nnn and kkk , construct a permutation aaa of numbers from 111 to nnn which has exactly kkk peaks. An index iii of an array aaa of原创 2023-08-16 10:31:23 · 113 阅读 · 1 评论 -
CF1516B AGAGA XOOORRR
Baby Ehab is known for his love for a certain operation. He has an array aaa of length nnn , and he decided to keep doing the following operation on it:Now he asks you if he can make all elements of the array equal. Since babies like to make your life hard原创 2023-08-16 10:24:37 · 115 阅读 · 1 评论 -
CF1485B Replace and Keep Sorted
Given a positive integer kkk , two arrays are called kkk -similar if:You are given an integer kkk , a strictly increasing array aaa and qqq queries. For each query, you are given two integers li≤ril_i \leq r_ili≤ri . Your task is to find how many arrays原创 2023-08-16 10:13:55 · 121 阅读 · 1 评论 -
CF1743C Save the Magazines
现在正在下雨,有一些箱子上面盖着盖板(如果一个箱子上盖了盖板,那么这个箱子里的杂志就不会被雨淋),并且可以将盖在第。如果有盖子,那就考虑移动和不移动两种情况,不移动也是直接继承上一个的最大值。个箱子上(同一个盖板至多移动一次)。求不会被雨淋的杂志数量的最大值。如果没有盖子,那就直接继承上一个的最大值。个是否有盖子,没有不需要移动第。个,否则就需要移动才能加上第。个盒子的最大值,以及第。个箱子上的盖板移到第。个盒子的盖子是否移动。下面进行分类讨论即可。原创 2023-08-16 10:09:34 · 150 阅读 · 1 评论 -
CF1442A Extreme Subtraction
将此题目转化成一个差分问题。要使数组中的全部数都为。问是否可以把通过若干次操作整个序列变为全是。,所以只要差分数组的负数和的绝对值小于等于。由你自己定,并且每次操作可以不同。那么我们就可以凭借操作。,将差分数组中的负数变成。那么我们就可以凭借操作。,将差分数组中的正数变成。为多少和我们并没有关系。,那么差分数组也必须为。原创 2023-08-14 09:45:50 · 75 阅读 · 0 评论