随笔分类 - 杂题乱刷2
摘要:题目链接 CF1372D Omkar and Circle(*2100) 解题思路 发现问题等价于在环上砍一刀形成一个序列然后取其中不相邻的数字使得和最大。 如果这是一个序列,我们只需要取奇数位上的数字和和偶数位上的数字和的最大值即可。 我们发现你砍掉一刀等价于把后缀拿到最前面来。 于是我们可以直接
阅读全文
摘要:题目链接 CF1227D1 Optimal Subsequences (Hard Version) *1600 CF1227D2 Optimal Subsequences (Hard Version) *1800 解题思路 本篇题解分 D1,D2 两个部分来写。 D1 sol: 我们容易发现有以下两
阅读全文
摘要:题目链接 CF1433F Zero Remainder Sum (*2100) 解题思路 简单 dp,只是状态有点多。 首先我们根据题目里的定义,可以构造 表示考虑到第 行前 列当前所选数之和模 为 且此时选了 \(
阅读全文
摘要:题目链接 CF1839E Decreasing Game(*2400) 解题思路 首先我们可以发现一个性质,那就是我们如果可以将这个序列拆分成两组,使得这两组数字的和相同,则我们此时扮演后手一定可以获胜,具体的,若先手取了其中一组数字中的一个,那我们只需要取另一组数字中的任意一个目前不为
阅读全文
摘要:题目链接 CF827B 解题思路 假设树以 为根,考虑先将 个深度为 的节点,然后我们就可以将剩余的节点挂在目前的叶子节点上,但是如果一个叶子节点挂了 个叶子节点的话,那么这样叶子节点数目你一定不能使叶子节点减少,因此一个叶子节点最多只能往下挂一个节点
阅读全文
摘要:题目链接 AT_arc184_a Appraiser 解题思路 Q = 999: 我们考虑将第一个硬币与其余的硬币作比较,最后若交互库返回的 更多,那么说明第 枚硬币是假币,否则第 枚硬币是真币,直接存动态数组最后输出即可。 操作次数容易得出为 次
阅读全文
摘要:题目链接 CF1108E1(luogu) CF1108E2(luogu) CF1108E1(codeforces) CF1108E2(codeforces) 解题思路 这篇题解分 E1,E2 两个部分来讲。 E1 sol: 我们发现可以暴力枚举最后经过所有操作之后的最大值,那么显然的,我们将不会做任
阅读全文
摘要:题目链接 CF1527B1(luogu) CF1527B2(luogu) CF1527B1(codeforces) CF1527B2(codeforces) 解题思路 这篇题解分 B1,B2 两个部分来讲。 B1 sol: 考虑字符串中 的数量,设这个值为 : 若 \(su
阅读全文
摘要:怎么没有二分的题解啊,写一篇。 题目链接 CF1301C Ayoub's function 解题思路 发现我们可以将问题转化成将 个 分成 份,设第 份的数字之和为 ,则这样的分配方案的贡献为 \(\frac{n \times
阅读全文
摘要:场切了,写篇题解纪念一下。 题目链接 CF1365G Secure Password 解题思路 首先有个非常显然的次数为 次的做法,就是我们根据二进制逐位考虑即可,那么为什么次数要乘上 呢,因为你在求出答案时,需要通过 两种不同的数
阅读全文
摘要:简单题。 题目链接 CF862D Mahmoud and Ehab and the binary string 解题思路 首先我们可以发现,字符串的第一个字母不是 就是 ,因此我们可以容易花费 次询问来找到数字 或数字 所在的一个位置。 然后
阅读全文
摘要:怎么题解区里都没有随机化的题解啊 /jy。 于是就有了这篇题解。 题目链接 CF862C Mahmoud and Ehab and the xor 解题思路 思路非常简单。 首先容易发现在 时,直接构造一个 这个数即可。 其次我们考虑 的情况,由于
阅读全文
摘要:题目链接 CF1360H 解题思路 发现你可以十分高效的统计小于等于 的合法的数字数量。 并且你可以发现,当 递增时,合法的数字数量是不递减的,因此合法的数字数量是具有单调性的。 于是可以进行二分答案。 那么如何进行 check 呢?我们先将不可选用的二进制数字给转化成数字,
阅读全文
摘要:题目链接 K-beautiful Strings CF1493C 解题思路 首先,如果原字符串是合法的直接输出原字符串即可。 然后我们考虑一个最简单的暴力,你枚举第一个你构造的字符串比原串大的字符的位置,再枚举这个字符,然后后面的肯定是从后往前贪心放即可,在此不再赘述。 这样的复杂度是 \(O(|S
阅读全文
摘要:duel 到的。 题目链接 CF1567D 解题思路 发现在越高的数位上,你获取的利益就会越大。 因此你肯定是每次将尽可能多的数分到最高的数位上是最优的。 但是你会发现,有可能你这样分数位后后面的数就分不到权值了,你只需要保证去掉当前分掉的权值之后,剩下可以分的权值不小于还剩下没分到的数字数量即可。
阅读全文
摘要:vp 到的。 题目链接 CF1183E Subsequences (eazy version) CF1183H Subsequences (hard version) 解题思路 考虑动态规划。 设 表示考虑到字符串前 个字符中选取的字符长度为 的不同
阅读全文
摘要:题目链接 CF1486C1 CF1486C2 解题思路 提供一个比较显然的思路。 我们发现我们可以先求出整体的最小值,然后设整体最小值所在的位置为 ,则我们可以通过 次询问 来求出最大值的位置是在 还是在 。然后
阅读全文
摘要:题目链接 at_abc365_f 解题思路 根号分治。 首先有一个显然的贪心,就是能往右走,是一定要往右走的,而剩下的情况,若我们在最高点的上面,那么一直往下走直到可以往右走是最优的,若我们在最低点的下面,那么一直往上走直到可以往右走是最优的。 于是我们就有了 的做法。 设阙值为
阅读全文
摘要:题目链接 CF1996F 解题思路 考虑二分。 我们发现,我们肯定是拿此时的价值最大的物品。 因此,当所有的物品再拿一次后会小于等于 时拿走的物品数量,在 缩小时,答案是单调不减的。 因此,我们可以令二分当所有的物品再拿一次后会小于等于 时的物品总价值是多少,注意
阅读全文
摘要:vp 到的。 题目链接 CF1889A Qingshan Loves Strings 2 解题思路 我们考虑从头到尾依次判断情况。 维护两个指针 来依次比较,直到有 。 这种情况根据题目所述是不合法的,因此我们需要依次分讨一下两种情况: \(a_l = a_
阅读全文