随笔分类 -  题解

上一页 1 ··· 6 7 8 9 10
摘要:思路 定义 dpi,j 表示将前 i 个数,正好分为 j 组的方案数。 那么,我们对 i 号元素进行分类讨论: 将 i 放入原本就存在的组中,因为在同一个组中不能存在两个数 x,y,使得 xmodm=ymodm。所以对 阅读全文
posted @ 2024-06-22 10:50 WBIKPS 阅读(3) 评论(0) 推荐(0) 编辑
摘要:思路 区间 DP 好题,合并的时候十分毒瘤。 首先,定义 dpi,j 表示合并 [i,j] 区间不同的方案的数量。不难发现,如果区间长度为奇数(即 ji+1 为奇数),一定无法合并。 然后,如果 i,j 是朋友关系,有 \(dp_{i, j} = dp 阅读全文
posted @ 2024-06-22 10:50 WBIKPS 阅读(4) 评论(0) 推荐(0) 编辑
摘要:思路 首先,不难发现,对于本题将 a,b 合成一个序列,并按照 ai 排序的答案不会发生变化。所以,我们可以直接排序,那么,我们当前枚举到的 ai 就是当前的 max(ai)。 定义 dpi,j,0/1 表示在 1i 中,选择 阅读全文
posted @ 2024-06-22 10:50 WBIKPS 阅读(9) 评论(0) 推荐(0) 编辑
摘要:思路 定义 visi 表示数 i 在序列中出现的次数。如果我们选出 k 个数,答案就是(其中 m 表示 max(ci)): \[ \sum_{i = 1}^m\frac{\binom{n}{x} - \binom{n - vis_i}{k}}{\bino 阅读全文
posted @ 2024-06-22 10:50 WBIKPS 阅读(3) 评论(0) 推荐(0) 编辑
摘要:思路 通常来说,对于倍增问题 dpi,j 表示的是以 i 为起点,走 2j 步的答案。 但是,对此此题,如果对于点倍增,因为每一个点可能会有多条边经过,所以,不能对点进行倍增。 但如果对边进行倍增,无论怎么走 2j 步后的位置一定相同,所以考虑对每一条边倍增 阅读全文
posted @ 2024-06-22 10:50 WBIKPS 阅读(4) 评论(0) 推荐(0) 编辑
摘要:思路 一个简单的贪心,对于每一次操作,我们假设我们能用盒子的大小的数组处理成 a。那么,我们可以对 a 进行从小到大排序。 然后,对于我们所有的箱子,我们可以以 w 为关键字,从小到大排序。 接着,我们可以进行暴力枚举,对于 ai,我们要取的必定为 \(\max_{ 阅读全文
posted @ 2024-06-22 10:50 WBIKPS 阅读(4) 评论(0) 推荐(0) 编辑
摘要:思路 首先发现一个事情,任意一个子串都可以由 s 的某一个后缀的后面删除一些字符得到。 因此假如 s 的某一个后缀的值为 x,那么我们可以减去后面的我们不用的数字 a,然后除以 10 的若干次幂得到,即 xa10n。 于是得到 阅读全文
posted @ 2024-06-22 10:50 WBIKPS 阅读(4) 评论(0) 推荐(0) 编辑
摘要:模拟赛最后 15 分钟想到的做法。 思路 首先有一个显然的贪心策略:我们放炸弹的地方要尽可能的使这个炸弹能影响到更多的怪上。 那么我们可以将对于一个怪 i 能够影响到它的区间表示出来 [max(1,lid),ai+r]。 然后将这些区间排个序,可以粗略画出这样 阅读全文
posted @ 2024-06-22 10:50 WBIKPS 阅读(4) 评论(0) 推荐(0) 编辑
摘要:思路 考虑将 maxmin 的贡献分开计算。 显然我们对这个序列进行一次排序不会影响最终的答案,因此我们可以先排序一下。 然后有一个很经典的 trick,就是你枚举每一个数 x,将 x 令为最大值(最小值)。因为我们先前排序过一次,因此我们可以轻易的计算出比 阅读全文
posted @ 2024-06-22 10:50 WBIKPS 阅读(6) 评论(0) 推荐(0) 编辑
摘要:思路 问题本质上就是一个在一段区间中找完整线段的数量。 我们先不考虑所有 li 对答案的限制,那么,我们的答案就应该是 1q 线段的数量减去 1(p1) 的数量,这个东西可以直接用树状数组维护。 然后,再来考虑 li 对答案的限制。如 阅读全文
posted @ 2024-06-22 01:27 WBIKPS 阅读(8) 评论(0) 推荐(0) 编辑

上一页 1 ··· 6 7 8 9 10
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示