随笔分类 - 动态规划
摘要:题目链接 2017 Beijing Problem H 题意 给定一个$n * m$的矩阵,现在可以把矩阵中的任意一个数换成$p$,求替换之后最大子矩阵的最小值。 首先想一想暴力的方法,枚举矩阵中的数,然后$O(n^{3})$求最大子矩阵更新答案,这样复杂度是$O(n^{5})$的。 思考得再仔细一
阅读全文
摘要:题目链接 2016 ZJCPC Problem B 题意 CF 660F的树上版本。 其他做的方法都差不多,关键是把凸壳放到树上。 每次确定扔掉几个元素的时候直接$O(1)$修改(先不清楚这个位置之后的元素因为之后还要恢复),然后$O(1)$恢复,通过这个来实现可持久。
阅读全文
摘要:题目链接 2017 CCPC Harbin Problem K 题意 给定若干物品,每个物品可以覆盖一个区间。现在要覆盖区间$[1, t]$。 求选出来的物品的$\frac{∑a_{i}}{∑b_{i}}$的最小值。 首先二分答案,那么每个物品的权值就变成了$x * b_{i} - a_{i}$ 在
阅读全文
摘要:题目链接 2017 CCPC Hangzhou Problem E 题意 给定一棵树,每个点有一个权值,现在我们可以选一些连通的点,并且把这点选出来的点的权值相加,得到一个和。 求$[1, m]$里面哪些值可以被表示成选出来的点的权值和。用$01$序列的方式输出。 重现赛赛场上的我英勇无畏,大胆做$
阅读全文
摘要:题目链接 2016 BUAA-Final Problem B 考虑一对可行的点$(x, y)$ 根据题意,设$x = ak + 1,y = bk + 1$ 又因为$x$是$y$的祖先的祖先的祖先,所以$y = 8x + d, 0 <= d <= 7$; 那么代入到之前的那个式子 $y = 8x +
阅读全文
摘要:题目链接 Path Counting 题意 给定一棵高度为$n$的树,给出每一层的每个点的儿子个数(某一层的所有点儿子个数相同)。 令$f_{k}$为长度为$k$的路径条数,求$f_{1}, f_{2}, ..., f_{2n-2}$。 考虑DP,设$f[i][j]$为从深度为$i$的点出发背对以$
阅读全文
摘要:题目链接 Educational Codeforces Round 39 Problem G 题意 给定一个序列,求把他变成Almost Increasing Array需要改变的最小元素个数。 Almost Increasing Array为删掉至多一个元素之后可以成为严格递增子序列的数列。 这类
阅读全文
摘要:题目链接 8VC Venture Cup 2016 - Elimination Round 题意 把$n$个物品分成若干组,每个组的代价为组内价值的极差,求所有组的代价之和不超过$k$的方案数。 考虑DP,$f[i][j][k]$表示考虑到第$i$个物品的时候,还有$j$组尚未分配完毕,当前状态总代
阅读全文
摘要:题目链接 Goodbye 2017 Problem D 题意 一个字符串开始,每次有$\frac{pa}{pa+pb}$的概率在后面加一个a,$\frac{pb}{pa+pb}$的概率在后面加一个$b$。 求当整个串中有至少$k$个$ab$的时候(不需要连续,下同),字符串中$ab$个数的期望。 设
阅读全文
摘要:题目链接 Hard Nim 设$f[i][j]$表示前$i$个数结束后异或和为$j$的方案数 那么$f[i][j] = f[i-1][j$ $\hat{}$ $k]$,满足$k$为不大于$m$的质数。 这个$DP$太暴力了。让我们冷静分析。 设不大于m的质数从小到大分别为$c_{1}$, $c_{2
阅读全文
摘要:题目链接 Round 322 Problem F 题意 给定一棵树,保证叶子结点个数为$2$(也就是度数为$1$的结点),现在要把所有的点染色(黑或白) 要求一半叶子结点的颜色为白,一半叶子结点的颜色为黑,求边权和的最小值。 若一条边连接的两个点颜色不一样,则该条边边权为$1$,否则为$0$。 考虑
阅读全文
摘要:题目链接 The 17th Zhejiang University Programming Contest Problem B 题意 给定一棵树,现在要加一条连接$1$(根结点)和$x$的边,求加了这条边之后,所有点到根结点的距离的和的最小值。 输出这个最小值即可。 当加的这条边为$1-x$时,$x
阅读全文
摘要:题目链接 Codeforces Round #465 (Div. 2) Problem E 题意 给定一个表达式,然后用$P$个加号和$M$个减号填充所有的问号(保证问号个数等于$P + M$) 求可以形成的表达式的最大值。 先把表达式转成一棵树,然后在树上DP。 题目保证了$min(P, M) <
阅读全文
摘要:题目链接 2016 Qingdao Online Problem I 题意 在一棵给定的树上删掉一条边,求剩下两棵树的树的直径中较长那的那个长度的期望,答案乘上$n-1$后输出。 先把原来那棵树的直径求出来。显然删掉的边不是这条直径上的边,那么这时答案就是这条直径的长度。 否则就是直径的某个端点到某
阅读全文
摘要:题目链接 Smile House 题意 给定一个$n$个点的有向图,求一个点数最少的环,使得边权之和$>0$,这里的环可以重复经过点和边。 满足 $n <= 300$ 首先答案肯定是单调的,但是观察发现只有当我们给所有的点加一个自环的时候才满足这个性质。 考虑$DP$。设$f[i][j][k]$为长
阅读全文
摘要:题意 给定一个长度为偶数的字符串。这个字符串由三种括号组成。 现在要把这个字符串修改为一个符合括号完全匹配的字符串,改变一个括号的代价为$1$,求最小总代价。 区间DP。令$dp[i][j]$为把子序列$[i,j]$修改为符合要求的括号序列。 其中$cnt$为调整当前最外层的那对括号所需的最小代价。
阅读全文
摘要:题目链接 Count Arrays 题意 给定$n$和$m$个区间。若一个长度为$n$的$01$序列满足对于每一个给定的区间中至少有一个位置是$0$, 那么这个$01$序列满足条件。求有多少满足条件的$01$序列。 设$f[i]$为考虑到第$i$位的时候,有多少满足条件的$01$序列。 则转移方程为
阅读全文
摘要:题目链接 Clear The Matrix 题意 给定一个$4 * n$的矩形,里面的元素为$'.'$或$'*'$。现在有$4$种正方形可以覆盖掉$'*'$,正方形的边长分别为$1,2,3,4$。 求把整个矩形变成全$'.'$的最小代价。 考虑状压DP 设$f[i][j]$为前$i$列已经全部变成'
阅读全文
摘要:题目链接 HDU 6249 题意 给定$m$个区间,在这些区间中选出不超过$k$个,求被覆盖的点的数量的最大值。 设$f[i][j]$表示选到第$i$个点并选了$j$个区间的时候能得到的最大答案。 处理到第$i$个点的时候观察所有覆盖$i+1$这个点的线段,找到延伸到最右端的这条线段。 假设该线段延
阅读全文
摘要:题目链接 Square Subsets 这是白书原题啊 先考虑状压DP的做法 $2$到$70$总共$19$个质数,所以考虑状态压缩。 因为数据范围是$70$,那么我们统计出$2$到$70$的每个数的个数然后从$2$考虑到$70$。 设$dp[x][mask]$为考虑到$x$这个数的时候,$x$这个数
阅读全文

浙公网安备 33010602011771号