![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
文章平均质量分 58
616156
赛高______↑
展开
-
SRM693-Biconnected
分析: 首先,如果你认为是图论或者其他算法,我并不认为做不出来。但至少DP是能做的。因为虽然题目各方面都是与图有关,但其实仔细想想,这个图已经被固定了,唯一有变化的就是边权。不难想到很多DP模型都是这个样子,满足统一的特征或者结构,但具体的数值有所不同。最重要的是,这个图很明显是一个近似于一条链的东西。 由此,我们猜想可以用DP来做。最开始必须明确一个基本性质:任何一个点的度数都必须大于1(否则原创 2017-03-20 17:24:00 · 132 阅读 · 0 评论 -
【Codejam2008_Round1C】C:Increasing Speed Limits
题目大意:给出一个长度为n(n<=500000)数字串a,求这个串中严格递增的序列个数,序列长度可为1分析:什么鬼!上升序列??相比做的前两场的C题,这次的C题在题目类型上就比较温和了,毕竟是很熟悉的DP模型。不难想到,设dp[i]dp[i]为以i为末尾的严格上升序列的个数。 转移就很容易想到了,dp[i]=∑j=1i−1dp[j](a[j]<a[i])dp[i]=\sum_{j=1}^{i-1}原创 2017-07-10 11:42:18 · 120 阅读 · 0 评论 -
【最短路&DP】BZOJ5047空间传送装置
说实话,第一次打BZOJ的月赛,本来是准备充分的,但由于英语考试,然后班主任又喂了一节课的鸡汤,导致最后只剩下一个半小时。也只做出来这一道题(蒟蒻属性暴露无遗)题目描述太空中一共有n座星球,它们之间可以通过空间传送装置进行转移。空间传送装置分为m种,第i种装置可以用4个参数ai,bi,ci,dia_i,b_i,c_i,d_i来描述。因为时空抖动的问题,在非整数时刻禁止使用空间传送装置。如果在整数s时原创 2017-09-23 07:50:44 · 245 阅读 · 1 评论 -
AtCoder Regular Contest 088
C:给出一个X,Y 求出一个序列AA,满足Ai−1|Ai且Ai−1≠Ai,Ai∈[X,Y]A_{i-1}|A_i且A_{i-1}≠A_i,A_i∈[X,Y],求这个序列的最长长度。模拟,序列第一位为X,每一位为之前一位的两倍,O(logY)O(logY)。D:给出一个01串,可以将01串上任意连续的长度不小于k的一个子序列翻转,求k的最大值。很容易发现一点,假设我们将原创 2017-12-24 23:05:32 · 224 阅读 · 0 评论 -
【DP】hihocoder1596 Beautiful Sequence
描述Consider a positive integer sequence a[1], …, a[n] (n ≥ 3). If for every 2 ≤ i ≤ n-1, a[i-1] + a[i+1] ≥ 2 × a[i] holds, then we say this sequence is beautiful.Now you have a positive integer seq原创 2018-01-12 22:25:38 · 216 阅读 · 0 评论 -
【DP?】hihocoder1526 序列的值
题目描述给定一个长度为 n 的序列 a[1..n],定义函数 f(b[1..m]) 的值为在 [0,m-1] 内满足如下条件的 i 的数目:b 中前 i 个数异或起来的值小于 b 中前 i +1个数异或起来的值。对于 a[1..n] 的每个子序列 b[1..m],求f(b[1..m])之和。分析:我们换一种思路: 设X为aia_i前的某些值的异或和,那么当:X<X x原创 2018-01-16 15:08:18 · 162 阅读 · 0 评论 -
【总结】北大2018冬令营题目&总结
6道题,6道与概率计数相关的题,6道都涉及998244353这个魔性数字的题Day1T1:给出一颗n个节点的二叉树,每个叶节点有一个权值(权值均不相同),每个非叶节点有一个概率P,表示:该点的权值有P的概率为它所有子节点中的最小值,同时有(1-p)的概率为所有子节点的最大值。 现在将根节点所有可能的权值从小到大排序,设分别为V1,V2,V3...Vm" role="presentat原创 2018-02-02 02:43:38 · 2520 阅读 · 0 评论 -
【DP】Codeforces EDU37 Tanks
题目大意:给出n个水柜,每个水柜初始有一些水,每个水柜都可以装无限大的水。 有一个勺子,勺子的最大容量为k 用勺子舀水有以下规则: 不能从多个水柜中舀水,倒水时也必须一次性倒完,不能剩余 每一次装下的水为min(v,k)其中v为该水柜剩余水量 现在需要使其中一个水柜中的水恰好为V,求是否有一种舀水方案能够满足,若不能,输出“NO”,若能,输出“YES”,并且输出任意一种舀水方案 输原创 2018-02-05 20:22:21 · 96 阅读 · 0 评论 -
【DP】Atcoder 3870 Reversed LCS
题意:给出一个长度为N的字符串,最多修改K次,每次修改可以将串中的一个字符修改为另一个字符。 现在要求将原串翻转,使得翻转后的串与原串的最长公共子序列尽量长。 N≤300分析:经过简单地分析后,其实这就是一道简单的DP水题。 我们观察最后所谓的最长公共子序列,我们很直观地认为这是一个回文串。下面来证明一下: 假设已经有一个最优解,那么我们可以将原串中选中的最靠前的点(A...原创 2018-02-27 21:32:27 · 270 阅读 · 0 评论 -
【DP】CF940E Cashback
题意:定义一种取值方式为:在一个长度为k的串中,去掉其最小的⌊kc⌋⌊kc⌋\lfloor \frac k c \rfloor个数,剩下的数之和即为这个串的值。现在给出c,以及一个长度为N的初始串,将其从中间某些位置划分,划分为一些连续的子串,需要使这些子串的和尽量小,输出最小和。 N≤100000分析:首先明确一些性质: 1、长度不足c的串,我们可以将其每个元素都拆开,不会影...原创 2018-02-25 16:45:59 · 260 阅读 · 0 评论 -
【DP】MagicalHats
题意:给出一个(n×m)(n×m)(n\times m)棋盘,棋盘上有xxx个位置为帽子,有yyy帽子下有硬币,现在A与B两个玩家来玩一个游戏: A每次选择一个帽子,翻开它,并且在翻开前,B玩家都可以任意放置硬币的位置。A翻开后,即得到等同于硬币面值的分(无硬币则无分),A一共能翻kkk次。要求A翻过的帽子不能再翻,翻过的硬币也不能被B移动。但硬币的放置也是有要求的,需要时刻满足:每行每列的...原创 2018-03-18 18:48:51 · 200 阅读 · 0 评论 -
【DP】KingdomAndPassword
题目描述:给出一个旧密码,现在要求得到一个新的密码,要求新的密码是旧密码的一个排列,并且每个位置分别不能为某些值,现在求一个新的密码,使得其余原密码之差的绝对值尽量小,如果有多个,输出最小的一个。 给出的密码是一个1016以内的数1016以内的数10^{16}以内的数分析:很显然是一个状压DP 有些特殊的是,这道题求的是差的绝对值尽量小,并不是传统的严格最大或最小为优。...原创 2018-03-13 20:19:46 · 114 阅读 · 0 评论 -
【树形DP】[AtCoder Petrozavodsk Contest 001 E] Antennas on Tree
题意:给出一颗树,在树上选择K个点,再定义一个点的权值为: 其到每一个选中节点的距离所组成的K维向量。 现在要使得所有点的权值互不相同,求最小的K分析:首先,必须明确一些性质: 对任意一个点uuu所有邻接点所在的联通块中,至多只有一个联通块中没有被选择点。 这就是本题的核心。 但这个性质是基于一个图的,我们要将其转移到树上,就必须解决连向祖先的联通块的影响。 其实只需...原创 2018-03-24 14:26:19 · 283 阅读 · 0 评论 -
【状压DP】Atcoder XOR Tree
题意:给出一棵树,每条边有边权vvv,每次操作选中两个点,将这两个点之间的路径上的边权全部异或某个值,求使得最终所有边权为0的最小操作次数。 v≤15v≤15v\leq 15分析:这里要用到一个特殊的技巧,我们将每个点的点权设为:其周围的所有边的边权的异或和。 这样一来,使得最终“所有边权为0”与“所有点权为0”是等价的。 证明很简单,考虑每一个度数为1的点,因为其点权为0,...原创 2018-03-24 16:29:06 · 390 阅读 · 0 评论 -
【DP】SRM552 PointErasing
题意:在一个平面上,给出NNN个点,现在重复进行如下操作: 1、选择两个横,纵坐标均不同的点,并且要求以这两个点为顶点的矩形,必须满足矩形内部(不含边线)存在至少1个点,若不存在,则停止。 2、删去矩形内部的所有点。现在求剩下的点的总数的所有可能结果 N≤50N≤50N\leq 50分析:首先,很容易发现,在某维坐标为最值的点是一定不会被包含的,因此,我们选中这些点,...原创 2018-03-21 18:38:33 · 158 阅读 · 0 评论 -
【概率DP】SRM515 NewItemShop
题意:要在一天内销售不超过N把魔法剑,并给出一些事件:每个事件由Ti,Ci,PiTi,Ci,PiT_i,C_i,P_i这个三元组组成。 分别表示:有PiPiP_i的概率,有一个客人会在TiTiT_i时刻进店,并以CiCiC_i的价格购买魔法剑。 并且有如下约束条件:每个时刻最多只有一个人可能会进店,可能有客人一天内在多个时间存在进店的可能性,但最多只进店一次。每个客人最多只买一把剑,并且你...原创 2018-03-21 22:48:45 · 187 阅读 · 0 评论 -
【DP】[Atcoder Grand Contest 022]E Median Replace
题意:给出一个长度为N的01串,对这个串做一些操作,使得最后能够只剩下一个1,即这个串是合法的。 每次操作选择三个相邻的数,用它们三个数的中位数替代它们三个数。 现在给出一个串,串的某些位置固定为0或1,还有些位置没有固定,为“?” 求满足条件的合法串的个数。 保证N≤50N≤50N\leq 50且N为奇数。这又是一道性质题: 首先,转换表达形式:用一个数组,表示每两个相邻的...原创 2018-04-06 20:08:34 · 314 阅读 · 0 评论 -
【DP】[Atcoder Grand Contest 022]F Checkers
题意:略分析:还是一道性质题。 用一个n位X进制数来表示一个坐标。 初始状态为(0,0,0,0,……0,1,0,0,……0)其中为1的位置为它的编号。由于X太大,我们完全可以忽略进位。当然,每个位置的值可能为负数。每次选中两个点(A,B)后,新的坐标为2B−A2B−A2B-A,很容易发现这样合并后,最后的答案一定是(a1=2p1,a2=2p2,a3=2p3,……,an=2p...原创 2018-04-06 20:34:55 · 275 阅读 · 0 评论 -
Codeforces483Div1 983B XOR-pyramid
题意:对一个序列b,定义一种运算 f(b)={b[1]f(b[1]⊕b[2],b[2]⊕b[3],…,b[m−1]⊕b[m])if m=1otherwise,f(b)={b[1]if m=1f(b[1]⊕b[2],b[2]⊕b[3],…,b[m−1]⊕b[m])otherwise,f(b) = \begin{cases} b[1] & \quad \text{if } m...原创 2018-05-26 13:39:36 · 187 阅读 · 0 评论 -
Codeforces483Div1 983C Elevator
题意:在一个9层的大楼内(大河内一*?),只有一台电梯,现在有N个人按顺序要乘电梯去他们想去的楼层,且不到达他们的目的地他们是不会下电梯的,要求每时每刻电梯内最多有4人,且上电梯的顺序必须严格按照人到达的顺序。但下电梯的顺序是任意的。每个人上、下电梯均需要1s,电梯移动一层也需要1s。现在求如何控制电梯,使得让所有人到达目的地的时间总和尽量小? N≤2000N≤2000N\leq 2000...原创 2018-05-26 13:51:45 · 564 阅读 · 0 评论 -
【总结】概率与期望
前言作为NOIP级的知识点,概率与期望算是比较困难的类型了。 但其实也不是无法解决的难题。本文主要通过作者本人的刷题经历,对概率期望类题目进行总结。概率51Nod1639绑鞋带:有n根鞋带混在一起,每根鞋带有两个鞋带头。现在重复n次以下操作:随机抽出两个鞋带头,把它们绑在一起。求最终只形成一个环的概率?依次考虑每一步操作,现在已经选出来了一个头,它必须和非它所在的链的另一...原创 2018-05-31 15:54:31 · 2485 阅读 · 0 评论 -
【组合计数】【DP】AGC001 BBQ Hard
分析:首先,很容易得到一个简单的表达式: ∑i,j(i≠j)CAi+AjAi+Aj+Bi+Bj∑i,j(i≠j)CAi+Aj+Bi+BjAi+Aj\sum_{i,j(i≠j)}C_{A_i+A_j+B_i+B_j}^{A_i+A_j} 然而会T。。。。观察一下这个式子有什么几何意义: CAi+AjAi+Aj+Bi+BjCAi+Aj+Bi+BjAi+AjC_{A_i+A_j+B_i+B...原创 2018-07-22 11:18:07 · 209 阅读 · 0 评论 -
【DP】CodeForces612F Simba on the Circle
题意:给出一个环状的序列,每个位置有一个值aiaia_i,初始位置为s,现在要求从小到大依次遍历每个点。要求总步数尽可能小。 序列长度N≤2000N≤2000N\leq 2000分析:这是一道代码题。。。。 所谓代码题,就是思路异常简单,但实现起来细节暴多的题。。。。第一问:其实大致方法很简单,定义dp[i]dp[i]dp[i]表示将所有aj≤aiaj≤aia_j\...原创 2018-07-22 17:33:24 · 388 阅读 · 0 评论 -
【DP】Codeforces499Div1 CF1010D Mars rover
题意:给出一颗逻辑树,求分别反转每一个输入端的值后,输出端的值。分析:额,不得不说这次Div1前面几题真的水。。。打得好累。。。(以前都是悠闲地切题的,这次题水了,为了不掉rating就得疯狂地做。。。)其实很简单,可以在每个位置维护一个值dpidpidp_i表示iii点值更改后能否影响到根。转移的条件是,当其父亲dpdpdp值为1,且当前位置的值反转后,会影响父亲的值...原创 2018-07-27 13:14:33 · 197 阅读 · 0 评论 -
【分块】【DP】HDU6331 Walking Plan
题意:给出n个点,m条边,询问q次,每次求从a到b经过至少k条边的最短路径。分析:啊啊啊啊我是傻叉吗。。。。现场想了个什么5000+5000的分块。。。像个智障一样。。。。明明可以100*100分块的。。。。其实看到这应该都知道怎么做了。定义DPa(i,j,k)DPa(i,j,k)DP_a(i,j,k)表示从i出发,到达j点,并经过刚好k∗100(k≤100)k...原创 2018-07-30 21:47:24 · 448 阅读 · 7 评论 -
【字符串】Atcoder 064F Rotated Palindromes
分析:显然,对于长度为N,字符种类为K的字符串,其回文串的个数为k⌈n2⌉k⌈n2⌉k^{\lceil \frac n 2\rceil}而且每个字符串都可以操作N次。但是会有重复。首先,对于一个字符串N,其最小循环节长度为c, 若c为奇数,那么有恰好有c个不同的字符串。 若c为偶数,那么有恰好c2c2\frac c 2个不同的字符串。所以只需要求最小循环节大小为c的字符串个数即...原创 2018-08-05 10:43:01 · 255 阅读 · 0 评论 -
【DP】【组合数学】HDU6391 Lord Li's problem
分析:很典型的组合数学+DP的题。 定义DP[i][j]DP[i][j]DP[i][j]表示用i个数字,xor出来有j个1,且这i个数字互不相同的方案数。转移很简单: DP[i+1][j+3]+=DP[i][j]∗C(n−j,3)DP[i+1][j+3]+=DP[i][j]∗C(n−j,3)DP[i+1][j+3]+=DP[i][j]*C(n-j,3):选3个1,xor上去 DP[i...原创 2018-08-14 16:22:18 · 341 阅读 · 0 评论 -
【DP】HDU6357 Hills And Valleys
分析:真是石乐志的一道题目啊。。。。这题我考场上现推的DP和官方题解一点关系都没有。。。。还是说说官方题解的做法吧它把最长不下降子序列映射成两个序列的最长公共子序列问题 a序列就是给出的原序列 b序列是值域的序列 需要注意的是:b序列可以重复匹配一般的最长不下降子序列中,b序列就是:0,1,2,3,4,5,6,7,8,9 这样a和b的最长公共子序列就是一个最长不下降子序...原创 2018-08-07 09:48:34 · 971 阅读 · 1 评论 -
【DP】【KMP】1015F Bracket Substring
题意:给出一个括号序列,求包含这个序列的长度为2*n括号匹配的个数。 |s|≤200|s|≤200|s|\leq 200 n≤100n≤100n\leq 100分析:这里不得不介绍一下BZOJ1009GT考试 这题是简化版本。很容易发现,这题就是GT问题的补集。首先,括号匹配的常规DP定义式:dp(i,j)dp(i,j)dp(i,j)表示长度为i,前缀和为j的括号匹配方案...原创 2018-08-02 17:14:20 · 264 阅读 · 0 评论 -
【状压DP】HDU6407 Pop the Balloons
分析:实质上很水的状压DP题。。。。。因为m≤12m≤12m\leq12,可以枚举哪些行被消除了,在状压转移删除的列首先枚举一个maskmaskmask表示要删除哪些行设dp[i][j]dp[i][j]dp[i][j]表示前i列已经被消除的行的状态为j,其中jjj为maskmaskmask的子集对于当前这一列,如果每一个有位置的行都被j覆盖了,那么就只能直接转移如果存在一个...原创 2018-08-16 19:34:15 · 258 阅读 · 0 评论 -
【DP】Codeforces1027E Inverse Coloring
题意:给出一个n*n的矩阵,要求在每个位置涂上黑/白色,要求满足:任意相邻的两行,其颜色要么完全相同,要么完全相反。任意相邻的两列,其颜色也要么相同要么完全相反。且这个矩形中,不存在任意一个大小大于等于k的同色矩形。分析:很简单的DP水题。。。。我们可以把这个矩形的的每一行设一个值aiaia_i,每一列设定一个值bibib_i。其中ai,bi=0或1ai,bi=0或1a...原创 2018-08-19 10:22:43 · 738 阅读 · 2 评论 -
【状压DP】CQBZOJ3646 炼金术师
分析:肥肠水的状压DP题。。。 考虑到k非常的小,可以用dp[i][j][l]dp[i][j][l]dp[i][j][l]表示以iii为首的前k个数中,被访问的状态为jjj,且最后一步访问到的数是l+il+il+i 转移也不难。。但的确是需要点技巧的首先直接枚举下一步走哪里(需要判断是否合法),以此来转移jjj和lll然后考虑转移iii很显然如果l!=0且j%2==1l!=0且...原创 2018-08-22 09:39:56 · 154 阅读 · 0 评论 -
【容斥原理】【树形DP】Atcoder ARC101 Ribbons on Tree
分析:很不错的树形DP+容斥原理的混合题不得不说,尽管Atcoder去世了一个半月,但这次题目质量仍然保持得很不错首先,这题可以运用容斥原理转化一下:定义EEE为给出的边集,设F⊆EF⊆EF\subseteq E,f(F)f(F)f(F)表示:F中的边全部未被覆盖的方案数。答案就是∑(−1)|F|f(F)∑(−1)|F|f(F)\sum (-1)^{|F|}f(F)那么接下来就...原创 2018-08-27 00:42:03 · 907 阅读 · 0 评论 -
【DP】Codeforces1025D Recovering BST
题意:给出n个点,每个点有一个点权aiaia_i 现在要求构造一颗二叉搜索树,需要满足:每条边两端的点其权值不互质。 询问能否满足分析:很水的区间DP题啦。。。 不知道为什么同学们还有WK大佬都没做出来呢。。。 看来同学们的DP训练还得再做做啊。。。(话是这么说,不过我似乎除了DP啥也不会了。。。好菜啊。。。)首先,由于其是一颗二叉搜索树,所以其中序遍历必然是不下降...原创 2018-08-21 00:07:25 · 330 阅读 · 1 评论 -
【DP】BZOJ2708 木偶
分析:将目标转化一下,变为:求互不矛盾的数值相邻的三元组的个数为什么是三元组呢,是因为这样第一个一定不能选最后一个,所以内部是不会矛盾的。矛盾的三元组只有一种情况:(i,i+1,i+2),(i+1,i+2,i+3)(i,i+1,i+2),(i+1,i+2,i+3)(i,i+1,i+2),(i+1,i+2,i+3) 即每一个位置相差1这样无论指向顺序是i−&gt;&nbsp;(i+...原创 2018-08-25 16:29:54 · 181 阅读 · 0 评论 -
【DP】 [COCI2017-2018#3] Dojave
题意:给出一个长为2m2m2^m得排列a 求满足以下条件的区间[l,r][l,r][l,r]的数量 1、任意交换两个元素的位置。 2、令al⊗al+1⊗al+2⊗……⊗ar=2m−1al⊗al+1⊗al+2⊗……⊗ar=2m−1a_l\otimes a_{l+1}\otimes a_{l+2}\otimes ……\otimes a_r=2^m-1分析:首先,设一个区间中的某个值为...原创 2018-09-09 17:15:07 · 315 阅读 · 0 评论 -
【概率/期望】【DP】NOIP2016换教室
分析:重做自己以前考过的题。。。突然有种成长的感觉。。。(觉得以前的自己就是个智障)这么水的概率DP题。。。放CFDiv1里面顶多也就B题的位置。。。我当年居然写的暴力。。。dp定义很简单,转移也很简单DP[i][j][0/1]DP[i][j][0/1]DP[i][j][0/1]表示前i节课,申请了j次换课的最小期望代价,因为代价是要基于i-1位置的,所以要加一维表示当前这一节...原创 2018-09-12 10:39:23 · 93 阅读 · 0 评论 -
【DP】AGC009C Division into Two
分析:很容易想到DP,设DP[i][0/1]DP[i][0/1]DP[i][0/1]表示已经处理了前i个,末尾一个属于A集合/B集合。那么DP[i][0]=∑DP[k][1]DP[i][0]=\sum DP[k][1]DP[i][0]=∑DP[k][1],其中KKK满足以下条件:1、K&lt;iK&lt;iK<i2、∀j∈[K+2,i],aj−aj−1≥A(B)\fo...原创 2018-09-24 19:41:05 · 162 阅读 · 0 评论 -
【数学】【图论】【DP】AGC009E Eternal Average
分析:首先要转换为一棵K度树,有N个权为0的叶子节点,有M个权位1的叶子结点。每个非叶子节点的权值为其所有儿子的权值的平均值。那么设1的点的深度分别为a1,a2,a3……ama_1,a_2,a_3……a_ma1,a2,a3……am0的点深度分别为b1,b2,b3……bnb_1,b_2,b_3……b_nb1,b2,b3……bn那么由于其是一颗K度树,所以必须满足:∑k−ai...原创 2018-09-24 21:17:20 · 170 阅读 · 0 评论 -
【DP】AGC004 Salvage Robots
分析:DP水题反过来考虑终点在移动设终点移动过的最左,右,上,下的点,构成一个矩形,显然在矩形内部移动是没有代价的。所以只需要考虑如何拓展这个矩形:如果矩形左移一格,那么右侧一部分点就再也到不了了,如果矩形上移一格,那么下侧一部分点就再也到不了了,这些点的数量可以统计出来。然后求出终点的移动区间为整个区间时,至少删了多少个点。转移很简单,分当前矩形是否与边界相交即可。#include...原创 2018-09-19 16:28:55 · 150 阅读 · 0 评论