随笔分类 - 动态规划
Luogu 3748 [六省联考2017]摧毁“树状图”
摘要:题目大意: 求两条树上边不相交路径, 使得删掉这两条路径上的点以后剩下的连通块数量最多。 做法 两条路径在树上大概会长成两个倒着的‘V’字形, 考虑在某一个'V'的最上面那个点统计答案。 于是统计答案的时候我们发现有几种统计法: 父节点有一个'V', 子节点有一个'V‘。 父节点上一条链到子节点,
[CQOI2017]老C的键盘
摘要:发现题目给的很像一棵树。。。 就把这棵树建出来。 发现如果把大于小于号分别看成一条有向边, 发现这个题目就是求这个图有多少个拓扑序。对于每一个拓扑序, 直接12345这样标号就可以得到满足题目要求的序列。 考虑树dp, 设f(i,j)为i这个点在这个子树所形成的拓扑序列中在第$
题解 [AGC030F] Permutation and Minimum
摘要:我们把位置在(2i−1,2i)的两个点叫做一对点。 显然如果这对点两个都被限定了直接丢掉完事。 如果有一个没有被限定就先留下来。 注意到其他的形如(−1,−1)的顺序是可以随便变化的, 所以先不考虑, 最后乘上一个阶乘就可以了。 考虑用f(i,j,k)表示当前填第i个数,
题解 AGC029E Pairing Points
摘要:考虑1号点向外连出一条边之后, 整个圆被分成两个部分, 每个部分肯定是内部连边然后一个点连一条边出来跨越一号点连出的那一条线。考虑对这种形状的部分进行dp。 设f(i,j,k)\(表示\)[i,j]这个区间内部匹配, k点向外连接的方案数, g(i,j,k)表示外面一点$k
题解 [AGC028D] Chords
摘要:首先, 按照boshi巨佬的说法, 考虑每种联通块的出现次数。如果可以求出, 答案就是每种联通块的出现次数和。 再按照boshi巨佬的说法, 一种定义联通块长相的方法是用编号最小的点和编号最大的点表示。 于是设f[l][r]为l,r连通且外面的点不连接到里面的点, 里面的所有边都任意连接的
题解 P4233 【射命丸文的笔记】 && 考试T3
摘要:考虑每一条哈密顿回路在所有竞赛图中的出现次数。 发现如果确定一个环, 其他的边乱选就可以保证出现哈密顿回路。所以对于一条哈密顿回路, 出现次数为2C2n−n, 减去的n为那n条边。哈密顿回路是1−n的一个排列首尾拼在一起, 共有n!/n种。于是总贡献可以直接得出。 总贡
[wqs二分模板] CF739E Gosha is hunting
摘要:题目链接 首先一个很显然的想法就是直接DP 设f[i][j][k]表示抓前i个神奇宝贝用了j个宝贝球和k个超级球,有: \(f[i][j][k] = max (f[i - 1][j - 1][k] + p[i], f[i - 1][j][k - 1] + u[i], f[i -
斜率优化DP刷题单
摘要:Luogu P3195 [HNOI2008]玩具装箱 Luogu P2900 [USACO08MAR]Land Acquisition G Luogu P5785 [SDOI2012]任务安排 Luogu P4360 [CEOI2004]锯木厂选址 Luogu P2120 [ZJOI2007]仓库建
CF149D Coloring Brackets
摘要:DP神题。。。 设dp[i][j][0/1/2][0/1/2]表示[i,j]这个区间内端点取不染色/染红色/染蓝色三个状态然后转移。一个新trick就是这里的转移只要考虑这个区间内的串是合法的就可以了
UVA10328 Coin Toss
摘要:考虑把答案拆成至多有n张朝上减去至少有k1张朝上。 显然第一部分的答案就是2n,考虑DP第二部分。设dp[i][0/1]表示第i张是反面/正面的情况数。然后有: dp[i][0]=dp[i1][0]+dp[i1][1] $$dp[i][1]=dp[i 1][
AT1983 [AGC001E] BBQ Hard
摘要:前言 学到了一个trick。 对于一个组合数 Cxx+y可以看成是从(0,0)到(x,y)的路径条数。 解法 对于这题而言,Cai+ajai+bi+aj+bj就表示从点(0,0)到点(ai+aj,bi+bj)的路径条数。 ~~然后你
Luogu P4127 [AHOI2009]同类分布
摘要:数位DP 这题最妙的一点在于,由于我们无法存下原来的这个数,我们就考虑存取模之后的值,而这个模数就选择一个可能是最后的每一位数字的和的值。而这个总数只有918=162种,然后存下每一位的和以及从高位到低位的取模结果,数位DP即可。