随笔分类 - dp
摘要:洛谷传送门 AtCoder 传送门 下文令 \(n\) 为原题中的 \(K\),\(m\) 为原题中的 \(N\)。 首先概率转方案数,最后除 \(2^{nm}\) 即可。 考虑一个指数级暴力:枚举每个 bot 的终点 \(y_i\)(因为存在不能相交的限制,需要满足 \(y_1 < y_2 < \
阅读全文
摘要:洛谷传送门 CF 传送门 duel 的时候差点不会 2400 了。 套路地,考虑每个 \(F(x)\) 中与 \(s\) 相同的子序列的贡献。设这个子序列为 \(F(x)_{p_1}, F(x)_{p_2}, F(x)_{p_3}, \ldots, F(x)_{p_n}\)。 我们想要它成为一个子序
阅读全文
摘要:洛谷传送门 LOJ 传送门 考虑剥路径最大值 dp,设 \(f_{k, i, j}\) 为 \(i \to j\) 中按的最大的按钮 \(\le k\) 的方案数。转移枚举按下最大值按钮的点 \(w\),有: \[f_{k, i, j} = \sum\limits_{(u, w), (w, v) \
阅读全文
摘要:洛谷传送门 AtCoder 传送门 下文令 \(a\) 为原题中的 \(T\)。 考虑若没有饮料,可以设 \(f_i\) 表示,考虑了前 \(i\) 道题,第 \(i\) 道题没做的最大得分。转移就枚举上一道没做的题 \(j\),那么 \([j + 1, i - 1]\) 形成一个连续段。设 \(b
阅读全文
摘要:CF 传送门 发现物品的体积很小,尝试从此处入手。 设 \(K\) 为最大的物品体积。把背包体积 \(m\) 分成差不超过 \(K\) 的两部分,然后合并。这样需要求出 \(f(\frac{m}{2} - K \sim \frac{m}{2} + K)\)。 递归地,可以发现需要求出 \(f(\fr
阅读全文
摘要:洛谷传送门 AtCoder 传送门 首先进行一个容斥,把连通块最大值 \(= K\) 变成 \(\le K\) 的方案数减去 \(\le K - 1\) 的方案数。 考虑 dp,设 \(f_{i, j}\) 表示当前用了 \(i\) 个点,\(j\) 条边。转移即枚举其中一个连通块的大小 \(k\)
阅读全文
摘要:洛谷传送门 LOJ 传送门 如果 \(T = 1\),可以把重量全部取相反数转化成 \(T = 2\)。接下来只考虑 \(T = 2\) 的情况。 下文的 \(m\) 代表原题中的 \(K\)。 设第 \(i\) 个 G 牛的位置和重量分别为 \(a_{0, i}, b_{0, i}\),第 \(i
阅读全文
摘要:洛谷传送门 CF 传送门 把题意抽象成,给你长为 \(n\) 的序列 \(a\) 和长为 \(m\) 的序列 \(b\),初始有 \(m\) 个空集合(可重集),\(a\) 中的每个元素至多被分到 \(m\) 个集合中的一个。要求最后第 \(i\) 个集合 \(T_i\) 不为空,且 \(\fora
阅读全文
摘要:洛谷传送门 AtCoder 传送门 首先考虑一个经典的套路:转 \(01\)。具体而言,我们考虑若值域是 \([0, 1]\) 怎么做。 发现可以很容易地判定一个 \(A\) 是否合法。设矩阵第 \(i\) 行的和为 \(r_i\),第 \(j\) 列的和为 \(c_j\),那么合法当且仅当 \(A
阅读全文
摘要:洛谷传送门 CF 传送门 好题。 考虑计算 \(x\) 落在 \([1, n - 1]\) 的概率。设 \(f_i\) 为 \(x\) 经过 \(i\) 的概率,答案即为 \(\sum\limits_{i = 1}^{n - 1} f_i\)。 \(f\) 有一个朴素的递推: \[f_i = \be
阅读全文
摘要:洛谷传送门 AtCoder 传送门 本质是 \(p_i \in [l_i, r_i]\) 的计数问题。 当 \(1 \le i \le n\) 时,\(l_i\) 才可能不等于 \(1\)。考虑容斥,设钦定 \(m\) 个不满足条件(上界为 \(l_i - 1\)),其余任意(上界为 \(r_i\)
阅读全文
摘要:洛谷传送门 AtCoder 传送门 考虑到规定单调不降比较难搞。先设 \(g_t\) 为长度为 \(t\) 的满足条件的序列个数(可重且有顺序)。求这个可以设个 dp,\(f_{d, i}\) 表示考虑到从高到低第 \(d\) 位,当前 \(t\) 个数中有 \(i\) 个仍然顶上界,并且之前的位都
阅读全文
摘要:CF 传送门 首先考虑没有选出的数互不相同的限制。设 \(f_m\) 为选出 \(m\) 个 \(\in [0, n]\) 的数,异或 \(\text{popcount} = k\) 的方案数。可以考虑枚举这 \(m\) 个数和 \(n\) 的 \(\text{LCP}\)(要求后一位为 \(1\)
阅读全文
摘要:洛谷传送门 AtCoder 传送门 看到和度数有关的(基环)树计数,可以想到 Prufer 序。 如果要计数一棵树,那么答案就是 \(\binom{n - 2}{d_1 - 1, d_2 - 1, \ldots, d_n - 1}\)。因为度数为 \(d\) 的点在 Prufer 序中恰好出现 \(
阅读全文
摘要:QOJ 传送门 考虑 \(1\) 到其他关键城市的最短路的并是一棵以 \(1\) 为根的外向树,考虑在外向树上从叶子往根 dp。 设 \(f_{u, i, S}\) 为当前在点 \(u\),已经翻修了 \(i\) 条道路,当前已经经过的关键点集合为 \(S\),最短路最大值的最小值。 转移有两种情况
阅读全文
摘要:QOJ 传送门 考虑从低位向高位 dp,设 \(f_{i, S}\) 为考虑到从低到高第 \(i\) 位,当前每个数超出上界的情况为 \(S\)。 转移可以枚举这一位填的数: 若 \(a_j = 0, r_j = 1\),那么这一位一定不会超出上界; 若 \(a_j = 1, r_j = 0\),那
阅读全文
摘要:洛谷传送门 AtCoder 传送门 考虑若重排好了 \(a\),如何判断可不可行。显然只用把 \(b\) 排序,把 \(\min(a_{i - 1}, a_i)\) 也排序(定义 \(a_0 = a_{n + 1} = +\infty\)),按顺序逐个判断是否大于即可。 这启示我们将 \(\min(
阅读全文
摘要:洛谷传送门 CF 传送门 过程相当于是将 \(p\) 重排列。设 \(b_i\) 为 \(p\) 中数为 \(i\) 的位置。考虑当前填的数 \(x\) 贡献的逆序对数,相当于是当前所有已经填入 \(p\) 的数 \(y\),都有 \([b_y > b_x]\) 的贡献。 考虑 \(p_{q_i}
阅读全文
摘要:洛谷传送门 CF 传送门 发现如果取模中途没有出现 \(0\),则可以 \(x \gets x + 1\)。 由此设 \(f_{i, j}\) 为考虑 \([1, i]\),最后取模得到的范围是 \([0, j]\)。 设最后的结果为 \(x\),中间结果减去 \(x\) 和为 \(y\),那么对答
阅读全文
摘要:洛谷传送门 CF 传送门 典? 考虑枚举 \(r\),算有多少种方案使得,存在一个点,离它最近的黑点距离 \(> r\)。 设 \(f_{u, i}\) 为 \(u\) 子树内离 \(u\) 最近的黑点距离为 \(i\)。如果一个点子树中离它最近的黑点距离 \(> r\),那么它就已经满足子树的限制
阅读全文

浙公网安备 33010602011771号