随笔分类 -  [动态规划] 普通动态规划

摘要:题目 给$n$个括号序列,可以对这些序列任意排列,然后连接成一整个括号序列。求一个排列,使得连接成的括号序列的真前缀是合法括号序列的个数最多。\(n\le 20\) 题解 观察性质,发现括号序列的balance一旦小于0,后面无论是什么都不会使得当前前缀的合法。合法括号序列的前缀的个数即balanc 阅读全文
posted @ 2021-10-13 23:24 limil 阅读(103) 评论(0) 推荐(0)
摘要:题目 长度为$n$的排列中,对于一个数$x$,如果所有包含$x$的区间的最大值恰有$m$个不同的值,那么$x$是好的。问有多少长度为$n$的排列,给定$m$,恰好有$k$个好的的数?\(n\le 100\) 题解 感觉不好直接计数,试试动态规划。设$f[n][m][k]$代表满足条件的排列数。可以发 阅读全文
posted @ 2021-10-08 17:35 limil 阅读(78) 评论(0) 推荐(0)
摘要:题意 求长度为$n$且满足以下条件的排列有多少: \(p_i \mod p_{i+1} \le 2\),其中$p_{n+1}=p_1$。 题解 可以将排列分为两个段,一段以1为结尾,一段以2为结尾。这两段序列必须满足递减且满足条件。 那么相当于求,需要将$n$~$3$递减的数依次分别填入这两个段中合 阅读全文
posted @ 2021-10-06 12:29 limil 阅读(399) 评论(0) 推荐(0)
摘要:题目 在一维坐标轴上,有$n$个点和$m$线段。每次可以花费1移动任意点向左或向右移动一个单位距离。问让每个线段均被至少一个点访问的最小代价。只要有点和线段有交集,该线段就被访问过。 题解 有两个比较简单的处理: 如果某些点在线段内,该线段就可以被删除。 如果线段内含了更小的线段,那么较大的线段可以 阅读全文
posted @ 2021-09-23 20:13 limil 阅读(304) 评论(4) 推荐(0)
摘要:题目 两个长度为n的排列p,q,问满足以下条件的排列有多少 p的字典序小于q p中的逆序数对大于q中的逆序数对 输出答案模mod,\(n\le 500\) 题解 在easy version中,\(n\le 50\),想想怎么做。 由于p字典序小于q,可以枚举第一个p小于q的位置。然后之后的排列就可以 阅读全文
posted @ 2021-09-20 00:31 limil 阅读(70) 评论(0) 推荐(0)
摘要:题目 给定一个$n\times m$的01矩阵,你每次可以翻转一行或一列任意次。问操作若干次后矩阵中最少的1是多少?\(n\le 20\),\(m \le 100000\) 题解 $n$很小,所以可以将每一列状压为$a_i$。若干次操作后,行操作集合相当于一个掩码,列操作相当于是否对掩码取反然后异或 阅读全文
posted @ 2021-09-14 20:19 limil 阅读(47) 评论(0) 推荐(0)
摘要:题意 [sourse](Problem - 1278F - Codeforces) 你有一副扑克牌,包含$m$张牌,其中只有1张鬼。每次操作会将牌打乱一次,然后查看最顶部的牌是否是鬼(打乱是完全随机打乱,即$m!$种排列中等概率选一种)。设$n$次操作后其中有$x$次是鬼,求$x^k$的期望,答案模 阅读全文
posted @ 2021-09-10 20:25 limil 阅读(152) 评论(0) 推荐(0)
摘要:题目 source 题解 按位计算贡献,$dp[i]$代表前$i$位的答案。第$i$位的贡献如下: 当$n$​为偶数时,如果第$i$位​全为1,那么前$i-1$​位可以随便取; 当$n$为奇数时,第$i$位不能全为1; 如果第$i$位不全为1,则第$i$位只能有偶数个1,贡献为$(2^{n-1}-[ 阅读全文
posted @ 2021-08-10 23:18 limil 阅读(65) 评论(0) 推荐(0)