随笔分类 -  动态规划

摘要:Zbq's Music Challenge 题意: 一个长度为n的序列,每个位置可能是1或者0,1的概率是$p_i$。对于一个序列$S$,它的得分是 $$BasicScore=A\times \sum_{i=1}^{n}{S_i} \tag{1}$$ $$ combo(i)=\left\{ \beg 阅读全文
posted @ 2019-04-03 20:18 MJT12044 阅读(284) 评论(1) 推荐(0)
摘要:抽卡大赛 链接 分析: $O(n^4)$的做法比较好想,枚举第i个人选第j个,然后背包一下,求出有k个比他大的概率。 优化: 第i个人,选择一张卡片,第j个人选的卡片大于第i个人的概率是$p_j$,那么答案的生成函数是: $\prod \limits _{j = 1}^{n} [j != i]((1 阅读全文
posted @ 2019-04-02 22:44 MJT12044 阅读(451) 评论(0) 推荐(0)
摘要:P3830 [SHOI2012]随机树 链接 分析: 第一问:f[i]表示有i个叶子结点的时候的平均深度,$f[i] = \frac{f[i - 1] + 2 + f[i - 1] * (i - 1)}{2} $,表示新增加一个叶子结点,深度增加2,加权后取平均值。 第二问:f[i][j]表示有i个 阅读全文
posted @ 2019-04-01 11:22 MJT12044 阅读(182) 评论(0) 推荐(0)
摘要:2091: [Poi2010]The Minima Game 链接 分析: 首先排序后,一定是选的连续的一段。 f[i]表示前i个位置,先手-后手的最大得分。 那么考虑第i个位置是否选,如果选,先手选的就是从i开始到i的一段,后手在1到i-1就变成了先手,所以就是a[i]-f[i-1]。 否则第i个 阅读全文
posted @ 2019-03-29 14:30 MJT12044 阅读(258) 评论(0) 推荐(0)
摘要:#6074. 「2017 山东一轮集训 Day6」子序列 #6074. 「2017 山东一轮集训 Day6」子序列 链接 分析: 首先设f[i][j]为到第i个点,结尾字符是j的方案数,这个j一定是从i往前走,第一个出现的j,因为这个j可以代替掉前面所有j。于是有转移方程: $$ f_{i,j}= 阅读全文
posted @ 2019-03-28 22:42 MJT12044 阅读(340) 评论(0) 推荐(0)
摘要:E. Museums Tour 链接 分析: 按时间建出分层图,每个点形如(u,t),表示u在在t个时刻的点,tarjan缩点。每个强连通分量中的点都能经过,然后DAG上dp。 代码: 阅读全文
posted @ 2019-03-13 16:42 MJT12044 阅读(375) 评论(0) 推荐(0)
摘要:3235: [Ahoi2013]好方的蛇 链接 分析: 可以求出以每个点为顶点的满足条件的矩形有多少个,单调栈求。设为sum。 然后对这个数组进行二维前缀和,可以求出每个矩阵内,以右下角、左下角为端点的矩形有多少个,分别设为f,g。 然后可以枚举一个点(x,y),计算有多少个矩形的左上角是这个点,然 阅读全文
posted @ 2019-03-04 11:06 MJT12044 阅读(273) 评论(0) 推荐(0)
摘要:2734: [HNOI2012]集合选数 链接 分析: 转化一下题意。 1 3 9 27... 2 6 18 54... 4 12 36 108... 8 24 72 216... ... 写成这样的矩阵阵后,那么题意就是不能选相邻的点,求方案数。可以知道行不超过18,列不超过11,然后状压dp即可 阅读全文
posted @ 2019-03-03 19:57 MJT12044 阅读(173) 评论(0) 推荐(0)
摘要:5469: [FJOI2018]领导集团问题 链接 题意: 要求在一棵树内选一个子集,满足子集内的任意两个点u,v,如果u是v的祖先,那么u的权值小于等于v。 分析: dp[u][i]表示在u的子树内,最大的数是i的时候,最多选多少点。其中每个i都要和i+1取max,即每个i维护后缀最大值。 考虑优 阅读全文
posted @ 2019-02-27 10:55 MJT12044 阅读(470) 评论(0) 推荐(0)
摘要:F - Pass 链接 题意: 给定一个只包含012序列,0表示这个人有2个红球,1表示一个红球一个蓝球,2表示两个蓝球。进行n*2次游戏,每次游戏所有有球的人选择一个球递给前一个人,第一个人把球放到一个序列中,'r'表示红球,'b'表示蓝球,问一共多少种序列。 分析: 一定要满足前i个人的所有红球 阅读全文
posted @ 2019-02-14 11:37 MJT12044 阅读(236) 评论(0) 推荐(0)
摘要:D - Ears 链接 分析: 转化一下题意,将一段序列分成5段,空 偶 奇 偶 空,然后dp一下,f[i][j]表示到第i个数,当前在第j段内,的最小花费。 空段中的花费是数字大小,偶数段中奇数花费1,奇数段中偶数花费1。 代码: 阅读全文
posted @ 2019-02-14 10:50 MJT12044 阅读(243) 评论(0) 推荐(0)
摘要:E. Cool Slogans 链接 题意: 给定一个字符串S,从中选出k个子串a[1],a[2]...a[k],满足a[i]在a[i+1]中出现了两次(可以重叠),求最大的k。 分析: 建出SAM,在parent树上dp,dp[i]表示到第i个点,最多选了多少个子串,那么如果fa[i]在i中出现了 阅读全文
posted @ 2019-02-13 11:41 MJT12044 阅读(279) 评论(0) 推荐(0)
摘要:D. Flood Fill 链接 题意: 一个颜色序列,每个位置有一个颜色,选择一个起始位置,每次可以改变包含这个位置的颜色段,将这个颜色段修改为任意一个颜色, 问最少操作多少次。n<=5000 分析: 区间dp。 dp[i][j][0/1]表示当前的区间是l~r,把这一段变成一个颜色的最少次数,最 阅读全文
posted @ 2019-02-11 11:25 MJT12044 阅读(583) 评论(2) 推荐(0)
摘要:#2473. 「九省联考 2018」秘密袭击 #2473. 「九省联考 2018」秘密袭击 链接 分析: 首先枚举一个权值W,计算这个多少个连通块中,第k大的数是这个权值。 $f[i][j]$表示到第i个节点,有j个大于W数的连通块的个数。然后背包转移。 复杂度是$O(n^2k)$,时限5s,然后卡 阅读全文
posted @ 2019-02-10 19:49 MJT12044 阅读(350) 评论(1) 推荐(0)
摘要:D. Jongmah 链接 题意: 一些数字,有两种方式组成一个三元组,[x,x,x],[x,x+1,x+2],每个数字只能用一次,求最多组成多少三元组。 分析: 因为每三个[x,x+1,x+2]是可以拆成[x,x,x],[x+1,x+1,x+1],[x+2,x+2,x+2]的,所以可以认为对于以x 阅读全文
posted @ 2019-02-09 09:00 MJT12044 阅读(628) 评论(0) 推荐(0)
摘要:4011: [HNOI2015]落忆枫音 链接 分析: 原来是一个DAG,考虑如何构造树形图,显然可以给每个点找一个父节点,所以树形图的个数就是$\prod\limits_u deg[u]$。 那么加入一条边后,我们依然可以按照上面的公式求出一个值T,然后减去不合法的,即存在环的。 那么这个环就是X 阅读全文
posted @ 2019-02-07 22:32 MJT12044 阅读(154) 评论(0) 推荐(0)
摘要:4013: [HNOI2015]实验比较 链接 分析: 首先把等号用并查集合并起来。 由于只存在最多一个质量不比i差的数,发现这是森林。若x<y,连边x->y。于是建虚拟根节点0。 然后树形dp,f[i][j]表示第i棵子树内,分成了j段的方案数,即存在j-1个小于号。 依次合并每个子树,假设一棵树 阅读全文
posted @ 2019-02-07 22:32 MJT12044 阅读(136) 评论(0) 推荐(0)
摘要:4008: [HNOI2015]亚瑟王 链接 分析: 根据期望的线性性,直接求出每张牌出现的概率,最后乘以攻击力就是答案。 每张牌出现的概率只与它前面的牌有关,与后面的没有关系,于是按顺序考虑每张牌。 $f[i][j]$表示到第i张牌,还剩j次出牌的机会(即轮数)的概率,那么有$f[0][r] = 阅读全文
posted @ 2019-02-07 22:05 MJT12044 阅读(160) 评论(0) 推荐(0)
摘要:3532: [Sdoi2014]Lis 链接 分析: 首先dp一遍,求出f[i],表示第i个位置在最长上升子序列中的最优排在什么位置。 然后建图,求最小割,可以求得第一问。S->i,容量INF;i->i+n,容量B[i];i+n->T,容量INF。 对于求字典序最小的最小割,那么首先按C排序,依次判 阅读全文
posted @ 2019-01-31 09:38 MJT12044 阅读(259) 评论(0) 推荐(0)
摘要:E - Mr.Aoki Incubator 链接 题意: 数轴上有N个黑点,每个点都有一个方向向右的正速度v。当两个点在同一个位置上重合时,若其中一个是红色,另一个也变成红色。保证没有相同速度或初始坐标。现问你有多少方法染红一些点,使得无穷久后所有点都被染红。 N≤200000 分析: 首先按照速度 阅读全文
posted @ 2019-01-30 12:43 MJT12044 阅读(311) 评论(0) 推荐(0)