随笔分类 - 杂题乱刷2
摘要: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: 你数组开小了吗? 你
阅读全文