Codeforces
文章平均质量分 84
notonlysuccess
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Codeforces 1838 F Stuck Conveyor 解析
本题是一道交互题在一个 $n*n$ 的传送带矩阵中,你可以控制所有传输带的传送方向(上下左右 `^ v < >`)不过有一个传输带坏掉了,只能固定某个方向,无法调整需要你在 $25$ 次询问(交互)内,找到坏掉的传送带每次交互,可以你做如下询问:将一个箱子放在指定的某一个传送带上,并设置各个传送带的方向每次询问,系统会给出如下答案:将各个传送带设置为你给的方案(坏掉的那个无法设置),然后告诉你箱子最终会落在哪个位置(在 n*n 矩阵之外),如果出现循环,则返回 `-1 -1`原创 2023-06-06 20:02:49 · 346 阅读 · 0 评论 -
Codeforces 1838 E Count Supersequences 解析
看起来好像只能解决 m = n + 1 的问题,因为空位会随着数字的插入变得越来越多。,将不符合条件的组合排除,剩下的就是符合条件的,而不符合条件的就是。sample 给的很良心,基本过了一定能 AC。但是我们发现一个很重要的现象,就是答案和。那我们就可以利用这个将问题简化,将所有的。,得到的数组是相同的,所以除了第一个空有。,在第二个空位中插入,可以得到。我们将所有的 X 加起来,最后。个数字是固定的,所以剩余的。,在第一个空位插入,可以得到。,答案不变,问题就转化成。种选择,后续的空只有。原创 2023-06-06 16:47:14 · 369 阅读 · 0 评论 -
Codeforces 1838 D Bracket Walk 解析
(官方解题报告虽然有严格的证明,但一般没有列如何想到这种思路,所以有时候看了解题报告后虽然会了,但对思维没有任何提升)遇到左括号,如栈,遇到右括号,就让栈弹出一个元素,如果没有元素,说明不合法。次操作,每次操作会给一个下标,将下标对应的括号进行取反(左括号变成右括号,或者右括号变成左括号)我们将上面的栈转化成数学公式(只考虑一种括号),将左括号记为1,右括号记为-1,记。问,每一次操作后,是否有一种进行路线可以让最后构成的新字符串成为一个合法括号序列。如果一个括号序列是合法的,那么需要满足两个条件。原创 2023-06-06 16:12:19 · 536 阅读 · 0 评论 -
Codeforces 1838 C No Prime Differences 解析
将 [1, n \cdot m] 的数字排列进 n * m 的矩阵中,使得任意相邻的数字之差都不是质数。的情况,我们交换一下行列,原偶数行和奇数行都放在一起,使得他们的差为。,不是质数,上下相邻的都相差。不是质数,那么就是答案。,那就一定不是质数了。原创 2023-06-06 13:14:04 · 554 阅读 · 0 评论 -
Codeforces 1838 B Minimize Permutation Subarrays解析
之间不能包含比k大的数字,所以如果我们将。那么我们的目的就是让其他的组合尽可能不出现。的连续子序列所能形成的排列组合越少越好。这两个排列组合一定会存在,只选1和全选。数字的排列组合,要求你找到两个下标。的排列组合,它的子序列一定要包含。之间,那么一定无法形成长度为。我们来看最容易出现的排列组合是。的位置,判断他们的位置,把。只要不挨在一起,就不会出现。给一个长度为 n 的数组。首先,不管怎么交换,原创 2023-06-06 12:53:43 · 351 阅读 · 0 评论 -
Codeforces 1838 A Blackboard List
我们观察到数字有负数,而后续往里添加的数字都是非负数,也就是负数不可能生成。所以解法就非常简单了,最小的数字是负数,则输出最小数字,否则输出最大数字,,得到的新数一定是比原来的数要小的,所以最大的数一定是最初的数字。是负数,那么一定是最初的数字。,要求把最初的其中一个数字。都是非负数的情况,根据。个数字,然后任取数组。现在给你乱序后的数组。原创 2023-06-06 10:58:00 · 347 阅读 · 0 评论 -
Codeforces 1837 F Editorial for Two 解析【难度 2200】
解题思路回顾求极值的问题,通过二分答案转化为判断题用最朴素的思路先找到一条正确路径然后用严谨的数学表单来描述条件,寻找推演公式降低最朴素实现的时间复杂度原创 2023-05-26 17:04:21 · 282 阅读 · 1 评论 -
Codeforces 1832 E Combinatorics Problem 解析【难度 2200】
而找他们的关系,就是将他们展开,然后相减,大部分情况都适用。,x,y,m,k 六个整数,需要进行如下4步操作。第1,3,4步都是非常直观,一直模拟直接计算出来。,其他情况等于0) 就可以根据前置计算所得。的复杂度非常高,由于n最大可能是。我们将其展开,然后相减来得出其关系。主要难点就是第二步,根据a计算b。非常的像,就是当k为k-1时候的。就能通过前序已经计算出的结果得到。括号里边的内容是不是很眼熟,和。,需要找一个方式可以让。我们将b扩展一维,原本的。一般这种情况都是寻找。所以,我们值需要计算出。原创 2023-05-23 18:09:48 · 460 阅读 · 1 评论 -
Codeforces 1832 D Red-Blue Operations 解析【难度 2400】
文章目录题目地址题目抽象题目类型解题思路Step1. 二分答案Step 2. 观察 - 假设 - 证明Step 3. 解题思路step4. 优化代码题目地址https://codeforces.com/problemset/problem/1832/D2题目抽象给一个长度为 n 的数组 a,一开始每个数字都是红色你可以对数组进行多次操作,在第 i (下标从1开始)次操作时,可以选择数组中任意一个数字如果这个数字是红色,则增加 i,并将颜色改为蓝色如果这个数字是蓝色,则减少 i,并将数字改为红原创 2023-05-23 13:23:28 · 406 阅读 · 0 评论 -
Codeforces 1832 C Contrast Value 解析【难度 1200】
所以我们只需要找到连续递增/递减的子串,保留头尾元素,所得到的子序列一定是最短的。任务是找 a 的非空子串 b,使得 b 的 CV 等于 a 的 CV。的符号不同时,既代表 ai 是递增或递减的端点,需要保留,计数+1。由此可得推理:连续递增/递减序列的 CV 等于该序列的头尾。给一个长度为 n 的数组 a,定义。求 b 的最短长度是多少。先对 case 进行观察。可以观察到一个规律,原创 2023-05-21 20:11:06 · 387 阅读 · 1 评论 -
Codeforces 1832 B Maximum Sum 解析【难度 1100】
一开始很容易想到贪心:先对数组进行排序,每次操作都选删除数组两头最小的,最终剩下的就是最大的。可以将剩余数字的范围看成一个窗口,当x+1时,窗口右端点+1,左端点+2。,其中 z < x < y < w 且 z + w < x + y。但这是错误的,因为这只是局部最优解,但不是全局最优解。所以我们可以通过O(1) 的复杂度通过。因为要不断的找最大最小值,所以先排个序。个数字被删除,那么剩余的数字就是。的复杂度,所以整体的算法复杂度是。次,那么选项2就是选择剩余的。个数字被删除,最大的。原创 2023-05-21 19:00:36 · 575 阅读 · 2 评论 -
Codeforces 1832 A New Palindrome 解析【难度 800】
(虽然是回文串,但不归为字符串类型,因为其实没有用到字符串任何特性,换成 int 元素的数组也一样)所以我们只需要考虑其中左半边的字符串就行,因为右半边的跟着镜像变化就行。在此题中,字符串b是由字符串a重新排列而成,所以条件1必然成立。题目要求原字符串经过排列组合后得到的新字符串依然是回文串。我们先来看看,字符串a等于字符串b意味着符合以下两个条件。我们知道回文串的特性是:左半边的串镜像等于右半边的串。当字符串 a 内有任意两个不同的字符。一个字符串能否重新排列成另一个字符串。原创 2023-05-21 11:45:01 · 367 阅读 · 1 评论
分享