随笔分类 - 构造
摘要:题目链接 CF109D Lucky Sorting 2000 (1800) 解题思路 我们考虑现将原序列离散化成排列,此时约束条件严格强于原题目,然后只找一个可以交换的数字,此时约束条件依然强于原题目。 那么此时我们考虑如何操作,设可以操作的数字为 : 如果此时数字 所在的位
阅读全文
摘要:题目链接 CF1738F Connectivity Addicts 解题思路 我们发现取度数大的点可以建的图显然最优秀,具体原因下面会讲,并且同一个连通块内的节点染成一种颜色一定合法。那么此时我们将所有节点从大到小排序,然后直接暴力建图即可,我们每次询问会存在两种情况,我们设询问到的节点为 \(x\
阅读全文
摘要:题目链接 CF2040D Non Prime Tree 解题思路 挺好的题啊,赛时 10min 胡了个正解,但是 数组打成 虚空调试 15min,怎么回事呢。 解法一 赛时做法。 可以看出当前无论怎么填,只要状态合法,那么一定有至少一种方案可以将整棵树都被填满,但是我不会
阅读全文
摘要:题目链接 CF1370F2 The Hidden Pair (Hard Version) (*2700) 题目描述 真的很难吗? 我们首先考虑找出第一个特殊点。 我们可以先求出这两个点路径中的任意一个点。发现询问 就使我们需要的询问、 接下来以这个路径中的一个点为根来确定每
阅读全文
摘要:题目链接 AT_arc184_a Appraiser 解题思路 Q = 999: 我们考虑将第一个硬币与其余的硬币作比较,最后若交互库返回的 更多,那么说明第 枚硬币是假币,否则第 枚硬币是真币,直接存动态数组最后输出即可。 操作次数容易得出为 次
阅读全文
摘要:场切了,写篇题解纪念一下。 题目链接 CF1365G Secure Password 解题思路 首先有个非常显然的次数为 次的做法,就是我们根据二进制逐位考虑即可,那么为什么次数要乘上 呢,因为你在求出答案时,需要通过 两种不同的数
阅读全文
摘要:怎么题解区里都没有随机化的题解啊 /jy。 于是就有了这篇题解。 题目链接 CF862C Mahmoud and Ehab and the xor 解题思路 思路非常简单。 首先容易发现在 时,直接构造一个 这个数即可。 其次我们考虑 的情况,由于
阅读全文
摘要:题目链接 K-beautiful Strings CF1493C 解题思路 首先,如果原字符串是合法的直接输出原字符串即可。 然后我们考虑一个最简单的暴力,你枚举第一个你构造的字符串比原串大的字符的位置,再枚举这个字符,然后后面的肯定是从后往前贪心放即可,在此不再赘述。 这样的复杂度是 \(O(|S
阅读全文
摘要:duel 到的。 题目链接 CF1567D 解题思路 发现在越高的数位上,你获取的利益就会越大。 因此你肯定是每次将尽可能多的数分到最高的数位上是最优的。 但是你会发现,有可能你这样分数位后后面的数就分不到权值了,你只需要保证去掉当前分掉的权值之后,剩下可以分的权值不小于还剩下没分到的数字数量即可。
阅读全文
摘要:vp 到的。 题目链接 CF1889A Qingshan Loves Strings 2 解题思路 我们考虑从头到尾依次判断情况。 维护两个指针 来依次比较,直到有 。 这种情况根据题目所述是不合法的,因此我们需要依次分讨一下两种情况: \(a_l = a_
阅读全文
摘要:duel 到的。 题目链接 CF1015D Walking Between Houses 解题思路 一道细节题。 思路很简单,肯定是一开始能走的越多越好,因此就有一种较好实现的方案,先每次走 格,但由于每次至少要走一格,因此如果不够走了就把能走的都走掉,之后全走 步即
阅读全文
摘要:upd: 哎哎哎,原来的题解没怎么写证明被叉了 /yun 所以我来补下证明。 upd2: 修改代码,增加代码可读性。 题目链接 P10678 『STA - R6』月 解题思路 时间复杂度优于官解的做法。 首先我们观察到一个性质就是 ,因为
阅读全文
摘要:链接 (Link) 一个好题。 就是说,你直接先求出这个数列的异或和,然后发现之后就可以两两匹配,如果无法匹配就默认这个数为 ,然后做完了。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? 打 cf
阅读全文
摘要:题目链接 CF1977B (luogu) CF1977B (codeforces) 解题思路 考虑通用做法。 我们发现如果直接用二进制来表示的话这个数会只包含 这两个数字。 发现这时阻碍我们构造的是连续的数字 。 考虑消除连续的数字 。 容易发现连续的数字 \(1
阅读全文
摘要:对下脑电波。 题目链接(luogu) 题目链接(at) 发现我们可以找出所有 当且仅当 为质数且 ,这样任意五个数加起来就必定为合数了。 代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp
阅读全文
摘要:链接 妙妙构造题。 很容易可以看出要构造出一种可以交换相邻两格数的操作。 这部分显然可以写个爆搜找到规律。 然后进行暴力操作即可。 代码也不长。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #incl
阅读全文
摘要:链接 构造思路: 考虑直接构造 的方格,然后前 为黑格,后 为白格,构造形如以下方式即可。 #.#.#.#.#.#.#.# ............... #.#.#.#.#.#.#.# .
阅读全文
摘要:感觉 D2 比 D1 简单 /kx /kx /kx 链接 算法一 发现一个数 为 时一定无法拆分。 此时直接分讨即可。 算法二 发现一个数 满足化为二进制下数位和为 ,可以拆成两个 的非负整数次幂的数。 此时直接分讨即可
阅读全文
摘要:链接 花花场,被前两题给背刺了。 还是来讲下这题思路吧。 算法一 随机选取两个数,正确的概率约为 。 期望得分 。 算法二 两两之间都选一遍,需要选 次。 然后建一个完全图容易求出每个数的大小。 期望得分 。 算法三 正片
阅读全文