摘要:
题意 给定 \(m\) 个小区间,对于一个小区间 \(i\) 可以覆盖 \([l_i,r_i]\)。 现有一个区间 \([1,n]\),现要将这 \(m\) 个小区间放在大区间上,使它们线段覆盖大区间。 求:最少选择多少个小区间才能满足条件。 思路 考虑 DP。 定义 \(dp_i\) 表示某一个区 阅读全文
posted @ 2024-06-26 12:37
WBIKPS
阅读(21)
评论(0)
推荐(0)
摘要:
思路 如果 \(a_i\) 在某一个最长上升子序列中,那么,这个最长上升子序列一定是形如 \(\dots,a_p,a_i,a_q,\dots\) 的。 发现 \(a_p < a_i < a_q\),那么以 \(a_p\) 结尾的一串一定是一个最长上升子序列,以 \(a_q\) 开头的一定也是一个最长 阅读全文
posted @ 2024-06-26 12:37
WBIKPS
阅读(41)
评论(0)
推荐(0)
摘要:
思路 定义 \(d_{i,j}\) 表示从 \(1\) 走到 \(i\),并且满足 \(t \bmod k = j\) 的最小的符合题意的 \(t\)。 然后就可以直接跑一遍 Dijkstra 即可。 当要计算一条 \(u \to v\) 的边 \(w\) 时,如果当前时间不够无法达到 \(w\), 阅读全文
posted @ 2024-06-26 12:37
WBIKPS
阅读(54)
评论(0)
推荐(0)
摘要:
思路 大模拟,按照题意模拟即可。 首先按照 \(\Delta\) 的取值分为 \(3\) 类: \(\Delta < 0\)。 \(\Delta = 0\)。 \(\Delta > 0\)。 对于第 1 种情况,根据题意,输出 NO。 对于第 2 种情况,原方程只会有一个解为 \(\frac{-b} 阅读全文
posted @ 2024-06-26 12:37
WBIKPS
阅读(262)
评论(0)
推荐(0)
摘要:
思路 首先发现对于操作 1 显然进行一次就可以将 \(t\) 变为一个回文序列。 那么,不难发现如果进行两次操作 1,在进行一次操作 2,是与进行一次操作 1,在进行两次操作 2 等效的。 所以考虑处理出 \(tt\) 表示 \(t\) 进行操作 1 后的序列。 不妨枚举一个 \(x,y\) 分别表 阅读全文
posted @ 2024-06-26 12:37
WBIKPS
阅读(20)
评论(0)
推荐(0)
摘要:
思路 Part 1 考虑 DP。 令 \(dp_i\) 表示 \(N\) 为 \(i\) 时的答案。 则有 \(dp_i = 2 \times dp_{i - 1} + dp_{i - 3}\)。 因为,我们想一想,如果我们的最后一个放的 I 形方块,那么可以放在最前面和最后面,因此我们还需要加上 阅读全文
posted @ 2024-06-26 12:37
WBIKPS
阅读(66)
评论(0)
推荐(0)
摘要:
不知道为什么都做这么复杂。 思路 考虑二分第 \(k\) 小的数 \(x\),思考怎么 check。令小于 \(x\) 的数量为 \(num\),则如果 \(num < k\) 则返回 true,否则返回 false。 问题转化为了求 \(num\)。定义 \(dp_i\) 表示分母为 \(i\) 阅读全文
posted @ 2024-06-26 12:37
WBIKPS
阅读(17)
评论(0)
推荐(0)
摘要:
思路 标准博弈论,我们假定 \(dp_i\) 表示当前棋子在 \(i\) 的时候,先手必赢为 \(1\),先手必负为 \(-1\),无法确定为 \(0\)。 那么我们看图分析一下: 在终点为 \(5\) 的情况下:不难的出 \(dp_5 = 1,dp_4 = -1,dp_7 = -1,dp_3 = 阅读全文
posted @ 2024-06-26 12:37
WBIKPS
阅读(26)
评论(0)
推荐(0)
摘要:
思路 首先有一个比较典的转化,因为本题中,有坐标和时间两种限制,于是考虑离线下来,按照时间依次进行操作。 我们可以考虑二分答案 \(len\) 则 check 函数就是判断 \([x - len,x + len]\) 区间中是否所有 \(k\) 中店铺都出现过。 有一个比较巧妙的方法,记录每一种店铺 阅读全文
posted @ 2024-06-26 12:37
WBIKPS
阅读(27)
评论(0)
推荐(0)
摘要:
思路 首先考虑两个瓶子容量分别为 \(x,y\) 互相倒的情况。发现每一次都是将剩余的液体减少 \(x\) 或者 \(y\),因此这两个瓶子的贡献就是 \(ax + by\),其中 \(a,b\) 是常数。 根据裴蜀定理,\(\min\{ax + by\} = \gcd(x,y)\)。拓展到多个数, 阅读全文
posted @ 2024-06-26 12:37
WBIKPS
阅读(17)
评论(0)
推荐(0)
摘要:
思路 定义 \(dp_i\) 表示在 \(a_{1 \sim i}\) 中选数,在满足题意的情况下的最长长度。 那么,我们在转移 \(dp_i\) 的时候,可以枚举一个 \(j\) 表示在 \(b\) 中,当前数的上一个数在 \(a\) 中的位置。 如果有 a[i] & a[j] != 0,那么,有 阅读全文
posted @ 2024-06-26 12:37
WBIKPS
阅读(28)
评论(0)
推荐(0)
摘要:
思路 区间 DP 好题。定义 \(dp_{i,j}\) 表示将 \(s_{i \sim j}\) 折叠能获得的最短长度。 那么,依旧是枚举一个中间点 \(k\),那么,我们将 \(dp_{i,j}\) 分为了 \(dp_{i,k}\) 和 \(dp_{k + 1,j}\) 两部分。 对于这两部分,可 阅读全文
posted @ 2024-06-26 12:37
WBIKPS
阅读(27)
评论(0)
推荐(0)
摘要:
思路 定义 \(dp_{i,j}\) 表示刷前 \(i\) 块木板,花了 \(j\) 次,能够正确粉刷的数量。 那么,显然 \(dp_{i,j}\) 等于 \(dp_{i - 1,j - k}\) 加上第 \(i\) 行刷 \(k\) 次能够正确粉刷的数量。 那么,考虑用另一个 DP 维护。定义 \ 阅读全文
posted @ 2024-06-26 12:37
WBIKPS
阅读(48)
评论(0)
推荐(0)
摘要:
思路 首先,\(A\) 和 \(B\) 只会移动一个,那么,我们分开来算,我们先假定 \(B\) 会动。 不妨令 \(A\) 与 \(b\) 连边的端点为 \(x,y\)。如果有线段 \(pq\) 能与 \(xy\) 相交,一定满足如下其中一条规律: \(p < x \wedge q > y\) \ 阅读全文
posted @ 2024-06-26 12:34
WBIKPS
阅读(21)
评论(0)
推荐(0)
摘要:
思路 我们定义 \(dp_i\) 为选取前 \(i\) 个人所得到的最大的价值。 那么,我们能得出一个很简单的状态转移方程: \[ dp_i = \max(dp_j + a \times (\sum_{k = j + 1}^{i}x_i)^2 + b \times (\sum_{k = j + 1} 阅读全文
posted @ 2024-06-26 12:34
WBIKPS
阅读(19)
评论(0)
推荐(0)

浙公网安备 33010602011771号