07 2024 档案
摘要:A 直接找两个相同的字符往里面塞个不同的字符即可。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? 打 cf 不要用 umap!!! 记住,rating 是身外之物。 该冲正解时冲正解! Problem: 算法
阅读全文
摘要:题目链接 CF1996F 解题思路 考虑二分。 我们发现,我们肯定是拿此时的价值最大的物品。 因此,当所有的物品再拿一次后会小于等于 时拿走的物品数量,在 缩小时,答案是单调不减的。 因此,我们可以令二分当所有的物品再拿一次后会小于等于 时的物品总价值是多少,注意
阅读全文
摘要:vp 到的。 题目链接 CF1889A Qingshan Loves Strings 2 解题思路 我们考虑从头到尾依次判断情况。 维护两个指针 来依次比较,直到有 。 这种情况根据题目所述是不合法的,因此我们需要依次分讨一下两种情况: \(a_l = a_
阅读全文
摘要:duel 到的。 题目链接 CF1513C Add One (luogu) CF1513C Add One (codeforces) 解题思路 我们发现,初始数列中的每个数字变为 必定只需要至多 次,于是我们可以直接预处理出 这个数字经过 次变化
阅读全文
该文被密码保护。
摘要:题目链接 P3107 [USACO14OPEN] Odometer S 解题思路 数位 dp 模板。 令某个数的特殊数字为在一个数字中至少出现过一半的数位的数字。 首先我们可以依次拆分数位来枚举当某个数位为特殊数字时来进行数位 dp,状态为 \(dp_{last,len,num,sum,\_1,\_
阅读全文
该文被密码保护。
摘要:题目链接 abc363f 解题思路 注意到一个数的因数只有 个,且此题中的表达式是需要为回文的,因此我们可以先预处理出所有自身乘倒过来的这个数的乘积为 的因数的数。 然后就是爆搜了,由于我们已经预处理过,因此直接搜索可行的数即可,注意,可行的数数位中不含零
阅读全文
摘要:题目链接 abc363d 解题思路 比较无脑的思路。 你考虑到,你只需要确定前半部分的数字也就可以构造出后面的部分使此数字回文。 于是可以进行数位 dp 来进行计数 中有几个回文数,再二分答案即可。 状态大概是 表示考虑到前 为目前
阅读全文
摘要:题目链接 CF1615C Menorah (luogu) CF1615C Menorah (codeforces) 解题思路 这题有三个重要的性质: 在同一个点做两次操作与不在这个点做操作是等价的。 给两个不同的点做操作等价于交换这两个点。 给一个字符串做偶数次操作,这个字符串的 的数量
阅读全文
摘要:duel 到的。 题目链接 CF1015D Walking Between Houses 解题思路 一道细节题。 思路很简单,肯定是一开始能走的越多越好,因此就有一种较好实现的方案,先每次走 格,但由于每次至少要走一格,因此如果不够走了就把能走的都走掉,之后全走 步即
阅读全文
摘要:duel 到的。 题目链接 CF727D 解题思路 首先只能选一个尺码的人直接给就是了,这样我们就只用考虑选两个尺码的人了。 因为两个尺码的人适合的两个尺码是相邻的,因此我们直接从小到大按照有两个尺码的人排序,再将剩下的衣服大小从小到大排序,然后依次给就可以了。 这里我用了桶排,时间复杂度 \(O(
阅读全文
摘要:duel 到的。 题目链接 CF727D (luogu) CF727D (codeforces) 解题思路 首先只能选一个尺码的人直接给就是了,这样我们就只用考虑选两个尺码的人了。 因为适合穿两个尺码衣服的人的适合穿的两个尺码是相邻的,因此我们直接从小到大按照有两个尺码的人排序,再将剩下的衣服大小从
阅读全文
摘要:题目链接 CF402D Upgrading Array (luogu) CF402D Upgrading Array (codeforces) 解题思路 首先你会发现你一旦在第 个位置上做了一次操作后,那么你之后所有在第 个位置做的操作都是无效的,因为此时该
阅读全文
摘要:题目链接 CF1454F Array Partition 解题思路 我们发现显然第一个和第三个区间的值区间随着长度的增大而增大。 于是我们就可以枚举第一个区间的右端点位置,然后现在问题就转化成了找到一个断点来确定第二,三个区间的长度,由于前文提到的第三个区间的值区间随着长度的增大而增大,于是我们就可
阅读全文
摘要:哎哎哎,题解区里怎么没我的做法啊 /yun。 于是就有了这篇题解。 题目链接 CF1702F Equate Multisets (luogu) CF1702F Equate Multisets (codeforces) 解题思路 首先我们发现, 序列中的数字的末尾的 是无意义的
阅读全文
摘要:代码恢复训练 2024.7.2. 链接 (codeforces) 链接 (luogu) 一道很基础的区间 dp。 只讲状态定义, 表示 区间需要的最少消除次数。 时间复杂度 。 点击查看代码 /* Tips: 你数组开小了吗? 你
阅读全文
摘要:upd: 哎哎哎,原来的题解没怎么写证明被叉了 /yun 所以我来补下证明。 upd2: 修改代码,增加代码可读性。 题目链接 P10678 『STA - R6』月 解题思路 时间复杂度优于官解的做法。 首先我们观察到一个性质就是 ,因为
阅读全文
摘要:题目链接 AT_abc360_d (luogu) AT_abc360_d (atcoder) 解题思路 一个性质是,往左边走的蚂蚁无论怎么样都追不到左边的蚂蚁,而往右边走的蚂蚁无论怎么样都追不上右边的蚂蚁。 因此我们考虑将蚂蚁分为往左往右走的两堆。 发现对于每个蚂蚁都能走过一段区间,因此直接二分将右
阅读全文
摘要:题目链接 CF1987D World is Mine 提示 Alice 的策略是固定的。 考虑用动态规划解决问题。 解题思路 我们发现,Alice 的最优策略一定是每次取当前能取的美味值最小的蛋糕,而 Bob 的策略难以使用贪心维护。 于是我们考虑用动态规划来考虑 Bob 的策略。 我们发现,Bob
阅读全文
摘要:题目链接 CF1987C Basil's Garden 提示 不妨把这个序列当做一个弹簧来处理。 弹簧会产生连锁反应。 解题思路 我们发现这个序列的区间是一段一段的,我们可以将每一段都当成一个弹簧,每两个数都会多产生 的贡献,那么这个区间的贡献就是这个区间的最大值加上这个区间的长度减去
阅读全文