随笔分类 -  动态规划-计数DP

摘要:题目 点这里看题目。 给定正整数 $n$ 和非负整数 $k$,对于所有 $i=1,2,3,\dots,n$,求出所有长度为 $n$ 且逆序对数为 $k$ 的排列构建的小根笛卡尔树中第 $i$ 个位置的深度之和(根的深度为 $1$)。 所有数据满足 $1\le n\le 300,0\le k\le \ 阅读全文
posted @ 2023-03-17 21:51 crashed 阅读(62) 评论(0) 推荐(1)
摘要:题目 点这里看题目。 给定一棵包含 $n$ 个结点的树 $T$。对于 $x\in [0,n-1]\cap \mathbb Z$,求与 $T$ 恰好有 $x$ 条边相同的树的有标号无根树个数。对 $10^9+7$ 取模。 所有数据满足 $1\le n\le 100$(原题)或 $1\le n\le 8 阅读全文
posted @ 2022-10-10 16:00 crashed 阅读(52) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2022-08-11 22:07 crashed
摘要:题目 点这里看题目。 分析 ~~从一开始就知道正确的思路,到最后都没有写成正确的算法~~。 给定一个字符串 $T$,考虑怎么验证它能不能由 $S$ 和另外一个括号串合并起来。 一个自然的做法是,写一个 DP:设 $f_{i,j}$ 表示 $T[1,i]$ 能否由 $S[1,j]$ 和另一个括号串前缀 阅读全文
posted @ 2022-08-10 12:13 crashed 阅读(168) 评论(0) 推荐(1)
摘要:题目 点这里看题目。 分析 显然这是一道 DP 题目。 显然,由于 $B,C$ 都是关于列,只有 $A$ 是关于行的,我们应该逐列做 DP。 状态有一点小技巧,我们可以设 $f_{i,j}$ 表示前 $i$ 列,其中有 $j$ 行出现了第一个黑格子,且这 $j$ 行的相对顺序已经确定的方案数。 No 阅读全文
posted @ 2022-06-30 09:49 crashed 阅读(69) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 首先,设原图的最小生成树的边集为 \(T\),则容易得到: \[ \begin{aligned} E(\max_{x\in T}e_x) &=\int_{0}^1P(t<\max_{x\in T}e_x)\mathrm dt \end{aligned} \] 而可以发现 阅读全文
posted @ 2022-03-13 19:46 crashed 阅读(80) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2022-02-09 15:37 crashed 阅读(0) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 很不错的 DP 题目。 简单分析一下问题的结构:对于一次操作,直观上我们可以选一条边,然后加入一个类三角形的结构。现在对于这个三角形,我们既可以基于初始的边继续加入三角形,也可以基于新的三角形的另外两边加入新的三角形。注意到,一个三角形的另外两条边对应的是独立的子问题。这 阅读全文
posted @ 2021-10-12 16:55 crashed 阅读(62) 评论(0) 推荐(0)
摘要:题目 门前有一道很深的沟,呈一排方格状。其余部分都平平整整的,唯独有连续的 \(n\) 格坑坑洼洼。这些坑洼的格子被从 1 开始编号,从沟底开始算,第 \(i\) 格的高度为一个正整数 \(h_i\)。 天下大雨,于是坑洼的部分会产生积水,而平整的部分的水会被直接排掉。考虑某个竖直切面,如果某个空白 阅读全文
posted @ 2021-10-07 19:32 crashed 阅读(103) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 尝试构建一个分层图来描述机器人的行动。抛开初始点不谈,我们可以构造出一个 \(n+1\) 层,每层有若干个点的图,用 \((i,j)\) 表示第 \(i\) 层的第 \(j\) 个点。那么机器人的静止可以用有向边 \((i,j)\rightarrow (i+1,j)\) 阅读全文
posted @ 2021-08-30 10:27 crashed 阅读(102) 评论(0) 推荐(1)
摘要:题目 点这里看题目。 分析 一个片段就是 \(\{1,2,\dots,n\}\) 的一个非空子集,所以片段共有 \(2^n-1\) 个; 问题相当于求片段集合的大小为 \(m\),且每个音符最终出现偶数次的子集数量。 看一下问题的限制: 所有片段非空; 集合中不存在相同的两个片段; 集合中每个元素总 阅读全文
posted @ 2021-08-10 19:23 crashed 阅读(75) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 手玩容易发现 good graph 的第二条要求等价于 \(G'\) 是二分图。 说明: 设 \(x_u\) 表示某种方案中 \(u\) 是否被操作。 那么有 \(|E'|\) 条方程。对于 \((u,v)\in E'\),方程的形式为 \(x_u\oplus x_v=1 阅读全文
posted @ 2021-08-09 22:26 crashed 阅读(117) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 一个简单的初始想法是:计算所有最终不是强连通的方案,然后再用总方案减去。 那么非强连通的方案经过缩点后,必然会变成 DAG 的形状。我们可以枚举所有 DAG 的形态,计算方案数: 每个强连通块的方案数:子问题,递归即可; 外部 DAG 的数量; 考虑求解 DAG 的数量。 阅读全文
posted @ 2021-08-09 22:08 crashed 阅读(124) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2021-07-13 08:31 crashed 阅读(0) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 极度简洁版本: 给定长度为 \(n\) 的置换 \(A\),在对称群 \(S_n\) 中求 \(P^k=A\) 的解的个数。 数据范围:对于 \(100\%\) 的数据,有 \(1\le n\le 10^5,0\le k\le 10^6\); 分析 绝世好阴间题。 首先,通过阅 阅读全文
posted @ 2021-07-05 21:43 crashed 阅读(98) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2021-03-22 21:31 crashed 阅读(0) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 懂了懂了,数数题都是毒瘤。 考虑我们可以怎么去震柱子。显然我们可以从高往低去震,但是这样分析无法导出一个解法。 另一个方式就是从后往前去震;这样我们可以导出一个结论: 如果当前柱子之后有高度为 \(1\sim h\) 的柱子各一根,那么当前柱子及之前的柱子,如果高度 \( 阅读全文
posted @ 2021-02-17 21:17 crashed 阅读(86) 评论(0) 推荐(1)
摘要:题目 点这里看题目。 分析 本题的正确解法 看到 \(P\) 序列的构造方法,我们不难想到将它和树联系起来。 将 \(P\) 中的 -1 修改为 0 ,并且对于 \(i\) ,连接边 \((P_i,i)\) ,我们就得到了一棵以 0 为根的树,且原序列就是这棵树的一种兄弟节点按照 \(H\) 不降排 阅读全文
posted @ 2020-10-16 22:17 crashed 阅读(161) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 初看似乎只能想到一个暴躁的 DP: \(f_{i,j}\):前 \(i\) 个数,最后一个数是 \(j\) 的序列方案数。 ...... 嗯,显然会 TLE。 不过,由于总共的区间数很少,所以由区间的端点组合的区间会很少。我们可以从这个方向入手压缩状态。 考虑将原先的闭区 阅读全文
posted @ 2020-10-16 14:49 crashed 阅读(135) 评论(0) 推荐(0)
摘要:题目 校内赛的改编题目,题意基本与[HDU6848]Expectation相同。 分析 首先,不难发现,本题就是求所有不同的操作序列的距离和,最后乘上 \(\frac{1}{n!2^n}\) 的概率就是答案。 于是考虑如何求这个距离和。这里有两种方法: 方法 1 本题的贡献显然是可以拆分的。我们只需 阅读全文
posted @ 2020-10-07 12:53 crashed 阅读(277) 评论(0) 推荐(0)