Codeforces
文章平均质量分 88
Codeforces 上的一些题目
花生ono
哈哈嗨~
展开
-
Educational Codeforces Round 157 (Rated for Div. 2) A-C
不然会重复甚至不好找,就比如拿短的去找比它长的另一半,长的限制条件表面虽然好确定,但是实际上不好找到(长度好确定,但是长的通用数字和不好确定),又得一个个遍历判断一遍。拼接后的长度得到需要找到另外一个残缺票证的长度,进而找到能与其拼接成幸运票证的残缺票证个数相加得到答案。显然枚举得到拼接后的长度要比遍历的残缺票证大,但它的一半得比残缺票证小,这样才好找到符合要求的个数。个点的坐标(可以相同),然后选择出一条经过这些点的路径(每点至少经过一次),使得该路径的长度最短。个票证时,记录每个票证的第。原创 2023-11-06 13:17:42 · 222 阅读 · 0 评论 -
CF 1714E - Add Modulo 10
一个循环),然后我们可以把每个数都统一成一个相同的个位数,然后。),得到每个数开始加的起点(一个偶数),判断起点相不相同就行了。,那么这个数不会变,起点就是它本身,如果个位数是。,因为其它奇数一加就变成偶数了。还有个位数是奇数的情况了,特殊的其实是。,可以看到,个位数的变化是有规律的(个数,每一个数都可以进行不断。操作,最终能否使得数组中。原创 2023-07-22 22:33:30 · 106 阅读 · 0 评论 -
CF 1702F - Equate Multisets
(非降序),以集合中的出现的数及其出现次数来表示相不相同。中的元素都变成我们所需要的奇数,也就是将不是奇数,不断地进行除以。比较难得到的其实是奇数,那么我们就可以把集合。相同,每个元素都可以操作任意次(也可以是。接下来,我们只需要考虑集合。的元素能否进行除以 2 操作得到集合。次),能就输出YES,否则输出NO。显然,任何一个偶数都存在一个数乘。原创 2023-07-20 23:52:23 · 105 阅读 · 0 评论 -
CF 1702E - Split Into Two Sets
组成的多米诺骨牌,将这些牌分成两个组,每组中牌上出现过的数字不同,如果可以分成这样的两组,输出YES,否则输出NO。先考虑可以分成符合要求的两组的条件,当我们把每一个多米诺骨牌上的两个数看成是之间有关系时(用图表示),就会发现它们构成了。(有向图的对称),为了能分成两组那么每个环上的顶点个数为。环(回路),那么每个数只能是。,然后隔一个分为同一组。原创 2023-07-20 21:55:20 · 106 阅读 · 0 评论 -
CF 1690E - Price Maximization
就能使成本大一点。这也是我们需要做的,尽量把余数大的找到一个小的余数组合,使得它相加后能再多一个。个包裹,也就是每两个商品为一个包裹,而每一个包裹的成本就是包裹中两个商品的重量和除以给定的。把所有包裹相加后,可以看出任意两个商品组合,都不会影响各自拥有的。值(结果向下取整),我们要找到的就是所有包裹最大成本值并输出。我们可以将一个包裹的成本划分为两个商品重量。的个数,影响的而是余数相加能否再多一个。(偶数)个商品划分为。原创 2023-07-19 00:54:14 · 56 阅读 · 0 评论 -
CF 1675E - Replace With the Previous, Minimize
因为要字典序最小,所以我们要尽量使前面的字符转化为字符。,且使得该字符串字典序最小,最后输出该字符串。最后把所有小于等于第一种情况的字符都转化为字符。内相同字符前移一次的最大次数。给你一个只有小写字符。原创 2023-07-12 19:15:05 · 95 阅读 · 0 评论 -
CF 1674F - Desktop Rearrangement
然后我们在添加或删除前先得知道现在需要移动的最小次数,其实就是从第一个位置到最后一个图标的位置所存在的空白格数(无图标)。我们可以将桌面布局一列一列地存储进一个一维数组,因为我们不难发现图标排列好后它的图标是连续的。同时我们可以看看桌面中。是指一列一列地排图标,就像我们电脑桌面的自动排列图标。3、将图标从一个地方移动到最终的地方算一次移动)(如果该位置原来有图标就删除,否则添加)之后,将所有。操作属于永久性操作,对后序的添加或删除有影响。所需的最小移动次数。原创 2023-07-10 22:09:34 · 83 阅读 · 0 评论 -
CF 1669H - Maximal AND
后最大,所以我们尽量使二进制较高位且数量较多的数进行。在输入的时候我们可以把每个数对应二进制位为。这一位才有效,也就是尽量使得在某一位。,然后转化为十进制就是我们要的答案。),最后把二进制对应位的数量达到。(等价于在该数对应的二进制第。操作,使其的数量达到。原创 2023-07-08 22:54:44 · 70 阅读 · 0 评论 -
CF 1669E - 2-Letter Strings
我们可以边输入边记录由两个字符构成的字符串出现的次数,然后寻找之前和他有一个字符不同的字符串的出现次数,将每次得到的出现次数加起来就是所要的对数。(注意:题目要求是前面的字符串与后面的字符串构成一对,也就避免了重复的现象)的字符串的对数(两字符串之间,一个字符相同,另一个不相同)找出所有由两个字符构成的字符串之中,原创 2023-07-08 20:35:33 · 234 阅读 · 1 评论 -
CF 1660D - Maximum Product Strikes Back
的个数. 其次就是避免出现负数, 当数组中负数的个数为奇数, 那么累积后的结果就为负数, 负数是比正数小的, 我们就需要减少一个负数来使得累积为正数. 最后就是需要考虑的。, 所以我们可以默认数组为全删. 然后影响数组的累积的最大值的其实就是。, 并且使得删去部分数后剩下的数的累积最大(左边删。的情况, 虽然说它比负数大, 但是我们并不想出现。作为分界点, 将该数组分成若干数组进行以上操作.(下面代码中, 我是每找到一个数组就进行以上操作)因为数组全删了, 累积结果为。(题目说明了空数组的累积为。原创 2023-07-07 12:57:29 · 93 阅读 · 2 评论 -
CF 1650C - Weight of the System of Nested Segments
将所有顶点记录,接着按照权重大小从小到打将顶点排序,然后还是排序,不过是按照顶点的坐标排序,特别的是需要排的个数不一定是全部顶点,而是边的两倍(一边两顶点)。然后就是从两边向中间打印两顶点输入时的出现顺序(从1开始)找出 n 条边使得每条边两端点的权值加起来的和最小。(下一条边一定在上一条边内)原创 2023-06-03 23:24:54 · 138 阅读 · 0 评论 -
CF 1650B - DIV + MOD
内,如果在给定的区间内那么最大值则在。后的余数最大的那个值就是。原创 2023-06-03 01:27:00 · 92 阅读 · 4 评论 -
CF 1619C - Wrong Addition
再取一位数,然后进行相减(s的减a的)。若差值在 0 ~ 9 则认为是正确的并进行组合,若不在这个范围,则认为不存在这样的。的每一对应数位相加之后的结果组合而组成的(对应数位不存在的用0加)。我们要做的是反过来,由题目给出的。的其中一位数,即差为 0 ~ 9,若超出范围就不存在合适的。的每一位都是 0 ~ 9 的数,也就是说。的其中一部分为两位数)。没有向左多一位或左一位为0,此时。从右往左进行计算,分别获取。则进行输出,若没有则输出。中的每一或两位数减去。原创 2023-05-17 20:38:12 · 134 阅读 · 0 评论 -
CF 1611F - ATM and Students
的,右指针就往后移,直到不满足条件。就这样找到当前符合要求的最右的指针,判断当前右指针和左指针的差是否大于记录的左右指针差(我一开始都为0),如果大于就更新记录的左右指针。然后将连续子列和减去左指针指向的数,并往后移。直到左或右指针跑完就算结束。(如果右指针未移动,左指针也会后移,再次进入循环后,右指针就能移动了。因为右指针不符合的条件,左指针后移后再进入循环,就能够抵消)利用双指针跑,左右指针同一出发点,如果当前连续子列和加上右指针指向的数能够。原创 2023-04-23 21:43:24 · 69 阅读 · 0 评论