Codeforces构造题刷题计划
刷爆构造题,提高思维
中午吃了泡面
这个作者很懒,什么都没留下…
展开
-
1559A Mocha and Math
每次操作,都可以选择任意的区间 [l,r],对于所有的值i(0≤i≤r−l),可将 al+i 替换为 al+i&ar−i,且此操作可以执行任意次数。其次,题目中的区间可以任意选择,操作也可以执行任意次数,也就是说每一个元素都会参与到与运算中。而通过与运算的性质我们可以知道,所求答案的二进制表示上的某一位为 1,它的充分必要条件是所有元素的二进制表示在该位上也都为 1。因此我们只要将所有元素进行与运算,可以保证最终结果就是我们要求的最小化后的最大值。,而那些不全为 1 的位与运算后肯定为 0。......原创 2022-08-15 20:09:49 · 331 阅读 · 0 评论 -
1612B Special Permutation
给定 n(偶数),a,b,构造长度为 n 的排列,使得左半边的数都小于等于 a,右半边的数都大于等于 b。显然,a≤(n/2)+1,b≥(n/2),特判 a 和 b 在序列中间的情况外,剩下的就一一输出就行。原创 2022-08-15 17:30:34 · 76 阅读 · 0 评论 -
1665B Array Cloning Technique
从贪心的思想来看,肯定得以原序列里出现次数最多的元素为目标来构造答案序列最为简便。此外,操作 1 和操作 2 综合起来看实际上就是对原序列里目标元素进行翻倍,那么问题就很简单了。2、选择当前序列与其他序列(包括自身)中各一个元素进行交换。问:最少需要多少次操作才能使序列里的元素全部相同。1、复制一遍当前序列。...原创 2022-08-15 16:56:35 · 144 阅读 · 0 评论 -
1617B GCD Problem
优先考虑 C=1 的情况,这毕竟也是最简单的情况。同时,容易知 29 是10^9 以内的最大的质因数,所以我们只需暴力枚举 A 即可。对于给定的 N,构造一组(A,B,C),使得 A+B+C=N && gcd(A,B)=C。原创 2022-08-14 20:10:50 · 79 阅读 · 0 评论 -
1665B Almost Ternary Matrix
构造一个矩阵,使得矩阵内每个元素跟上、下、左、右的四个元素相比,总有两个不一样,其中元素总用 0 和 1 来表示,矩阵的长宽总为偶数。在纸上画几个样例就能发现如下图所示的基矩阵,不管什么情况都是在此之上进行延拓的。...原创 2022-08-11 17:39:15 · 266 阅读 · 0 评论 -
1705B Mark the Dust Sweeper
所以对于本来就有砖头的位置,我们无需考虑(在我们架设好一路都有砖头的情况下,有几块砖头对应得花几次操作),而本来就没有砖头的位置,我们都得花一次操作给它添加一个砖头。最终,问题就转化为:从最开始有砖头的位置往后扫,累加每次给空位置添加一块新砖头的操作次数和原本就需要搬的砖头数。一排 n 个位置,部分位置上有一定数量的砖头,每次操作可选择一对 i 和 j,将 i 处的砖头搬一块到 j 处,其中,要求 i < j 且区间 [ i+1 , j-1 ] 的位置上都得有砖头。...原创 2022-08-09 17:28:45 · 395 阅读 · 0 评论 -
1335B Construct the String
构造一个长度为 n 的只包含小写字母的字符串,保证任意长度为 a 的子字符串中总有 b 个不同的字符。a 只是个噱头,我们只要保证任意连续 b 个字符都不相等即可。原创 2022-08-09 16:16:47 · 207 阅读 · 0 评论