随笔分类 - 动态规划-DP
摘要:题目地址 https://www.luogu.com.cn/problem/P6280 题解 对于某个排列$A$,题目的问题其实可以等价于对于每个$i$,连一条$(i,a_i)$的边,求每个环大小的$lcm$。(因为要回到原位必然要绕圈,每个点都恰好绕一圈的步数就是$\text$,这样就可以恢复成原
阅读全文
摘要:$f[i][j]$表示当前摆放到第$i$位,然后当前的匹配长度为$j$ $f[i][j]=\sum {f[i][k] g[k][j]}$ $g[i][j]$表示将长度为$i$的匹配变成长度为$j$的匹配的方案数。这个可以kmp预处理出来:枚举当前已匹配长度$i$和当前要放的下一个字符,跳一下$nxt
阅读全文
摘要:处理出原串中每个点为中点的极长回文串,这个用hash或者manacher均可,反正这里不是复杂度瓶颈:(。那么问题就变成了可重叠的线段覆盖问题。 设 $f[i]$ 表示已经完全覆盖 $1 i$ 的最小代价 那么取结束点在i的线段$ "l,r" $ $f[i] = \min\{f[k] + 1\} (
阅读全文
摘要:比较明显的计数dp。不知道为什么被打了状压的tag... 不难发现无论炮放在哪里其实是等价的,需要知道的只有这一列放了一个炮还是两个炮还是还没放,那么可以设$f[i,j,k]$表示第$i$行,一共有$j$列放了两个炮,$k$列放了一个炮。 然后转移考虑一下选数的组合意义即可。 cpp include
阅读全文
摘要:设$f[i][j]$表示当前有$i$个白球,一共放完了$j$种球 显然有$j using namespace std; const int N = 2020; const int mod = 1e9 + 7; int inv[N N], fac[N N]; int f[N][N]; int n, k
阅读全文
摘要:A B K $SG$函数板子题,根据$SG$定理,只需要$sg(k)$不为$0$就先手必胜。 对于$\text{mex}$运算我直接从第一个数开始枚举了...需要复杂度正确的话就需要写个主席树或者写个权值分块。复杂度是$O(nk\log A)$或者$O(nk \sqrt A)$,如果直接枚举最坏是$
阅读全文
摘要:题目地址 https://loj.ac/problem/2343 题解 首先处理出$f[i]$表示以当前位置开头(J,O,I)的合法方案数。这个显然可以$O(n)$处理出来。然后考虑在每个位置插入三种数。 在位置i插入J:显然对于i后面的所有$f[j](i using namespace std;
阅读全文
摘要:题目链接 "题目链接" ) 题解 一开始想了一个错误的状压dp,水了40分。 这里先记录一下 错误 的做法: 错解: 设$g[i,j,S]$从$i$到$j$,只经过集合$S$中的点的最短路,这个可以$O(n^3 2 ^ n)$处理出来。 设$f[S]$表示生成树的集合为$S$时的最小代价,每次枚举起
阅读全文
摘要:Description 奶牛们讨厌黑暗。 为了调整牛棚顶的电灯的亮度,Bessie必须建一座干草堆使得她能够爬上去够到灯泡 。一共有N大包的干草(1 任意取出一个能使层数最高的方案,设有CA层,把其中从下往上每一层最大的块编号记为Ai;任取一个能使底边最短的方案,设有CB层,把其中从下往上每一层最大
阅读全文
摘要:题目链接 "题目链接" ) 题解 数据范围显然状压/爆搜。 考虑$f[S]$表示二进制下已打了的猪的集合。 可以枚举$S$的子集$S_1$,判定$S$中$S_1$的补集$S_2$是否合法。 判定可以通过待定系数法做到$O(n)$判定。若补集合法,则$f[S]=\min\{f[S_1]+1 \}$。
阅读全文
摘要:题目链接 "题目链接" 题解 $f[i][j]$表示位置$(i,j)$到达需要的最小点击数。 $f[i][j]=\min\{{f[i 1][j kx]+k},f[i 1][j+y]\}$ $O(nm^2)$ 考虑优化,首先$f$可以滚动,然后考虑优化掉一个$m$。 设$g[j]$表示$(i 1,j)
阅读全文
摘要:题目链接 https://www.luogu.org/problem/P4381 题解 基环树直径的板子。但是dfs会爆栈...所以最后改成了bfs。还是一个很考验码力的板子。 首先基环树的直径显然有两种情况,在不进入环的情况下在一个子树内,这直接dp求就好了。第二种是一个子树中的链+环上一段+另外
阅读全文
摘要:Description 现在我们有一个长度为n的整数序列A。但是它太不好看了,于是我们希望把它变成一个单调严格上升的序列。 但是不希望改变过多的数,也不希望改变的幅度太大。 Input 第一行包含一个数n,接下来n个整数按顺序描述每一项的键值。nj)$,它们能保留下来当且仅当$a[i] a[j]\l
阅读全文
摘要:题目描述 一天小甲苯得到了一条神的指示,他要把神的指示写下来,但是又不能泄露天机,所以他要用一种方法把神的指示记下来。 神的指示是一个字符串,记为字符串 $s_1$,$s_1$ 仅包含小写字母 $\texttt{a z}$。 现在小甲苯想要写下神的指示,记为字符串 $s_2$,$s_2$ 仅包含小写
阅读全文
摘要:Description 你有n 个整数Ai和n 个整数Bi。你需要把它们配对,即每个Ai恰好对应一 个Bp[i]。要求所有配对的整数差的绝对值之和尽量小,但不允许两个相同的数配 对。例如A={5,6,8},B={5,7,8},则最优配对方案是5配8, 6配5, 8配7,配对整数 的差的绝对值分别为2
阅读全文
摘要:Description 正在上大学的小皮球热爱英雄联盟这款游戏,而且打的很菜,被网友们戏称为「小学生」。现在,小皮球终于受不 了网友们的嘲讽,决定变强了,他变强的方法就是:买皮肤!小皮球只会玩N个英雄,因此,他也只准备给这N个英 雄买皮肤,并且决定,以后只玩有皮肤的英雄。这N个英雄中,第i个英雄有K
阅读全文
摘要:Description windy有 N 条木板需要被粉刷。 每条木板被分为 M 个格子。 每个格子要被刷成红色或蓝色。 windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色。 每个格子最多只能被粉刷一次。 如果windy只能粉刷 T 次,他最多能正确粉刷多少格子? 一个格子如果未
阅读全文
摘要:Description 给一棵m个结点的无根树,你可以选择一个度数大于1的结点作为根,然后给一些结点(根、内部结点和叶子均可)着以黑色或白色。你的着色方案应该保证根结点到每个叶子的简单路径上都至少包含一个有色结点(哪怕是这个叶子本身)。 对于每个叶结点u,定义c[u]为从根结点从U的简单路径上最后一
阅读全文
摘要:Description 在一年前赢得了小镇的最佳草坪比赛后,FJ变得很懒,再也没有修剪过草坪。现在,新一轮的最佳草坪比赛又开始了,FJ希望能够再次夺冠。然而,FJ的草坪非常脏乱,因此,FJ只能够让他的奶牛来完成这项工作。FJ有N(1 <= N <= 100,000)只排成一排的奶牛,编号为1...N
阅读全文
摘要:Description FarmerJohn要带着他的N头奶牛,方便起见编号为1…N,到农业展览会上去,参加每年的达牛秀!他的第i头奶牛重 量为wi,才艺水平为ti,两者都是整数。在到达时,FarmerJohn就被今年达牛秀的新规则吓到了: (一)参加比赛的一组奶牛必须总重量至少为W (这是为了确保
阅读全文