上一页 1 ··· 8 9 10 11 12 13 14 15 下一页
摘要: 思路 定义 \(dp_{i,j,k} = 0/1\) 表示用 \(i\) 个 1 号传感器,\(j\) 个 2 号传感器 不能/能 监控到前 \(i\) 段。 显然有: \[ dp_{i,j,k} = \max_{0 \leq p \leq j \wedge 0 \leq q \leq k \wed 阅读全文
posted @ 2024-06-23 00:26 WBIKPS 阅读(18) 评论(0) 推荐(0)
摘要: 思路 首先我们发现,刚开始人需要走到箱子周围的四个位置。其次我们发现人需要站的位置最多有两个。 例如,\(c\) 在 \(b\) 左方,人就需要在箱子右方。 然后我们就可以算出 \(a\) 点走到这两个点的距离,需要注意的是,这两点所产生的贡献不一定是两点间的曼哈顿距离,因为如果 \(b\) 挡在了 阅读全文
posted @ 2024-06-23 00:26 WBIKPS 阅读(27) 评论(0) 推荐(0)
摘要: 思路 可撤销背包板子。 首先问题是用当前所拥有的数的集合凑出 \(x\) 的方案数。 这个问题明显可以背包解决,即 \(dp_j \leftarrow dp_j + dp_{j - a_i}\)。 但是,此问题中物品有可能会被删除,即变为了一个动态的问题,如果直接暴力计算时间复杂度为 \(\Thet 阅读全文
posted @ 2024-06-23 00:26 WBIKPS 阅读(34) 评论(0) 推荐(0)
摘要: 思路 首先先考虑弱化版怎么做,即如何求本质不同子序列数量。 不妨定义 \(dp_{i}\) 在前 \(i\) 位中选,且以 \(i\) 结尾的本质不同子序列数量。 显然,有(其中 \(nxt_{i,c}\) 表示在 \(i\) 之后,第一次出现 \(c\) 的位置): \[ dp_{i} \righ 阅读全文
posted @ 2024-06-23 00:26 WBIKPS 阅读(18) 评论(0) 推荐(0)
摘要: 模拟赛怒码 7KB 错解,赛后 10min AC。 思路 首先观察 \(l,r\) 不同的关系对于结果的构成有什么影响,记 \(gf = LCA(l,r)\)。 \(l = r\)。很显然,答案就是以 \(l\) 为根的节点的深度和。 \(gf \neq l \wedge gf \neq r\)。在 阅读全文
posted @ 2024-06-23 00:26 WBIKPS 阅读(15) 评论(0) 推荐(0)
摘要: 思路 定义 \(dp_i\) 表示前 \(i\) 位所能得到的答案。 那么,不难得出状态转移方程,其中 \(X_{i,j}\) 表示 \(X_{i,j}\) 转为的数字: \[ dp_i = \sum_{j = 1}^{i - 1}(dp_j \times X_{j + 1 \sim i}) + X 阅读全文
posted @ 2024-06-23 00:26 WBIKPS 阅读(30) 评论(0) 推荐(0)
摘要: 思路 定义 \(dp_{i,j}\) 表示在标号前 \(i\) 个商品中,将所有 \(x_k \leq i\) 的商品购买,且一共买了 \(j\) 件商品的花费最小值。 那么,对于 \(i\) 号商品就会有 选/不选,两种状态: 如果选,那么有 \(dp_{i,j} = \min(dp_{i - 1 阅读全文
posted @ 2024-06-23 00:26 WBIKPS 阅读(15) 评论(0) 推荐(0)
摘要: 思路 首先你可以发现,如果一个区间 \([l,r]\) 是一个好的序列,那么一定 \(i\) 能从 \(l\) 开始 一直到 \(r - k + 1\),将 \(a_{i \sim (i + k - 1)}\) 减掉 \(a_i\)。 那么,当 \(l = 1\) 时,对于每一个 \(i\),我们可 阅读全文
posted @ 2024-06-23 00:26 WBIKPS 阅读(37) 评论(0) 推荐(0)
摘要: 思路 定义 \(dp_{i,j,0/1}\) 表示在以 \(i\) 为根的子树中(包括 \(i\))选出 \(j\) 个连通块,且 \(i\) 不选/选 的方案数。 假设我们在 DFS 过程中,当前枚举到以 \(u\) 为根节点的情况,那么显然有 \(dp_{u,0,0} = dp_{u,1,1} 阅读全文
posted @ 2024-06-23 00:26 WBIKPS 阅读(21) 评论(0) 推荐(0)
摘要: 思路 定义 \(dp_{i,j}\) 表示前若干层一共有 \(i\) 个点,且在这些层中最外层的点数为 \(j\) 的方案数。 那么,我们先求出最外层的方案数,在 \(n - (i - j) - 1\)(即减去前若干层中除最外层点的数量再减去 \(n\) 号点)中选出 \(j\) 个作为最外层的点。 阅读全文
posted @ 2024-06-23 00:26 WBIKPS 阅读(20) 评论(0) 推荐(0)
摘要: 思路 对于操作 1,我们可以看做将 \(x\) 号集合与 \(y\) 号集合合并,并将原本的 \(y\) 号集合重新开一个并查集维护。 对于操作 2,我们可以开一个数组维护每一个球所在哪一个并查集中。 对于操作 3,在操作 1 中维护每一个并查集对于了哪一个箱子即可。 因为 \(n + q \leq 阅读全文
posted @ 2024-06-23 00:26 WBIKPS 阅读(29) 评论(0) 推荐(0)
摘要: 思路 因为此题撒网的时间和位置都是未知的,所以必须枚举出一个。 又因为时间有可能是一个小数,不好枚举,因此考虑枚举位置。 首先,有一个显然的贪心策略,每一次撒网的位置的左端点一定是一条鱼。 那么,我们不妨枚举撒网位置的左端点为第 \(i\) 条鱼。 然后可以算出其余的鱼能被一起捕到的时间段。 那么, 阅读全文
posted @ 2024-06-23 00:26 WBIKPS 阅读(22) 评论(0) 推荐(0)
摘要: 思路 实际上对于一个字符串 \(S\) 进行一个 \(f(S,x)\) 的操作本质上就是在 \(S + S\) 中截取一段长度为 \(n\) 的子串。 于是你不难想到把 \(A,B\) 拼起来,形成一个字符串 \(S = A + A + B + B\),然后比较后缀。你发现这是对的,因为两个串的字典 阅读全文
posted @ 2024-06-23 00:26 WBIKPS 阅读(27) 评论(0) 推荐(0)
摘要: 思路 首先,可以将所有岛屿的连通关系可以分为四种情况: 只用桥。 只用桥和机场。 只用桥和港口。 桥、机场、港口都用。 那么,只用桥的情况十分好处理,直接跑一边 Kruskal 即可。 但是对于机场和港口都是点权,不能直接跑 Kruskal,所以考虑转化为边权。 不难想到直接用一个超级原点,连接这些 阅读全文
posted @ 2024-06-22 15:19 WBIKPS 阅读(25) 评论(0) 推荐(0)
摘要: 大家好,我是毒瘤,喜欢用玄学算法过题。 发现题解区没有这个做法,于是来发一篇。 思路 不难发现如果一个点对 \((u,v)\) 的距离为 \(d\),那么在这棵树以 \(u\) 为根时,\(v\) 的深度为 \(d\)。于是考虑换根 DP。 首先思考如何计算答案。显然我们可以将查询离线下来,然后当换 阅读全文
posted @ 2024-06-22 13:58 WBIKPS 阅读(20) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 14 15 下一页