
DP
_xgcxgc
一名热爱看番的OIer,
热爱OI,
热爱二次元,
热爱这个世界。
展开
-
【清华集训2017】生成树计数 pufer序+分治NTT优化DP
Description在一个sss个点的图中,存在s−ns−ns−n条边,使图中形成了nnn个连通块,第iii个连通块中有aia_iai个点。现在我们需要再连接n−1n−1n−1条边,使该图变成一棵树。对一种连边方案,设原图中第iii个连通块连出了did_idi条边,那么这棵树TTT的价值为:val(T)=(∏i=1ndim)(∑i=1ndim)val(T)=(\prod_{i=1}^n...原创 2019-08-05 22:26:33 · 455 阅读 · 0 评论 -
51nod1261 上升数 DP+数论
Description一个10进制表示的正整数,如果从左到右,每一位的数字都不小于前一位的数字,则被称为上升数。给出长度N和一个数K,求有多少个长度恰好为N的上升数,是K的倍数。Sample Input3 111Sample Output9首先有一个性质大概就是说要把每个数字的贡献分开考虑:对于你假设有j个大于等于当前num的数,那么它在总和中就会贡献111…(j个1)这么多...原创 2018-10-08 22:38:14 · 657 阅读 · 0 评论 -
Codeforces Round #408 E. Exam Cheating DP
Description有n道题目,有两个人分别会做某些题目,有p次偷看机会,每次可以偷看某个人最多连续k道题目,求最多偷看几道题目。(注意:是可以重叠的)Sample Input6 2 33 1 3 64 1 2 5 6Sample Output4你设f[i][j][x][y]为到第i道题目,已看了j次,对第一个人还剩x次机会,对第二个人还剩y次机会。反三种情况转移即可。...原创 2018-10-07 22:16:17 · 232 阅读 · 0 评论 -
Educational Codeforces Round 38 F. Erasing Substrings DP
Description给你一个长度为n的串,K次操作(K=⌊log2n⌋)(K=⌊log2n⌋)(K=⌊log2n⌋),第i次操作去掉长度为2i−1的串,求最后剩下的字典序最小的串。Sample InputadcbcaSample Outputaba首先它是不会有覆盖的情况的,然后你考虑DP吧,设f[i][j]为有i位,删除的状态为j的最优字符串。可以O(n3logn)...原创 2018-10-07 19:57:35 · 149 阅读 · 0 评论 -
Educational Codeforces Round 22 D. Two Melodies DP
Description给出长度为n的序列,从中找出2个子序列,满足每个子序列相邻两数之间要么相差1,要么同余于7,求这两个子序列的最长长度和。Sample Input41 2 4 5Sample Output4设f[i][j]为以i,j为结尾的子序列的最大值。维护一个维护两个最大值,优化转移即可。为了避免重复,转移时考虑满足i < j。#include <c...原创 2018-10-07 11:17:19 · 159 阅读 · 0 评论 -
AIM Tech Round 3 (Div. 1) E. Student's Camp DP
Description给你一个n*m的方块,每天靠边都有p的概率被吹掉,问最后每一层都有方块且互相连通的概率,以逆元形式输出。Sample Input2 21 21Sample Output937500007首先考虑设h[i][l][r]h[i][l][r]h[i][l][r]为第i行l~r的块都在,其他吹掉,前面合法的概率。因为每一层是单独分开的吗,你可以预处理出一个pl...原创 2018-10-05 20:30:43 · 209 阅读 · 0 评论 -
8VC Venture Cup 2017 - Elimination Round G. PolandBall and Many Other Balls 倍增+NTT+DP
Description把n个球分成m组,每一组不超过2个,并且不能为空,对于所有小于等于k的分组输出有多少种不同的方案。Sample Input3 3Sample Output5 5 1对于暴力的DP,设f[i][j]为前i个球分成j的方案数。那么f[i][j]=f[i−1][j]+f[i−1][j−1]+f[i−2][j−1]f[i][j]=f[i-1][j]+f[i-1][...原创 2018-10-05 11:41:41 · 334 阅读 · 0 评论 -
[POI2016]Nim z utrudnieniem DP
DescriptionA和B两个人玩游戏,一共有m颗石子,A把它们分成了n堆,每堆石子数分别为a[1],a[2],…,a[n],每轮可以选择一堆石子,取掉任意颗石子,但不能不取。谁先不能操作,谁就输了。在游戏开始前,B可以扔掉若干堆石子,但是必须保证扔掉的堆数是d的倍数,且不能扔掉所有石子。A先手,请问B有多少种扔的方式,使得B能够获胜。Sample Input5 21 3 4 1 2...原创 2018-09-27 16:38:03 · 186 阅读 · 1 评论 -
Codeforces Round #162 E. Roadside Trees dp+线段树
Description在 1∼n 的位置能种树,刚开始能种树。第 i 个时刻会有操作:1.在一个没种过树的位置 p_i 种一颗高度为 h_i 的树。2.砍掉第 x_i 棵树,保证这个位置以后不会种树。每天树会长高1,每执行一次操作,输出最长上升子序列长度。任意时刻树的高度不同。Sample Input4 61 1 11 4 41 3 42 21 2 82 3Sam...原创 2018-10-12 10:32:16 · 182 阅读 · 0 评论 -
Educational Codeforces Round 40 H. Path Counting DP
Description给你一棵树,第i层每一个节点都有a[i-1]个子节点。让你求对于每一个k,长度为k的有序点对个数。Sample Input42 2 2Sample Output14 19 20 20 16 16设f[i][j][k]为到第i层,长度为j的有序点对。k=0时表示有一个端点处于这层,k=1时表示有两个端点处于这层的方案数。直接转移即可。#includ...原创 2018-10-04 08:57:57 · 153 阅读 · 0 评论 -
Helvetic Coding Contest 2018 online mirror C3. Encryption (hard) 树状数组+DP
Description给你一个序列,要你分成k块,每一段的权值定义为这一段的和%P,求权值总和最小。Sample Input4 3 103 4 7 2Sample Output6考虑O(nk)的DP,设f[i][j]为i分成j段。对于当前的s[i],就分两种情况继承,一是小于等于s[i],一是大于等于s[i]的,这个你可以用树状数组加速。。。#include &lt;...原创 2018-10-03 16:09:20 · 183 阅读 · 0 评论 -
Технокубок 2018 - Отборочный Раунд 3 E. Maximum Element DP
Description求n的排列有多少满足:从左到右扫求最大值,当最大值不再变化k次后的最大值不为n。Sample Input5 2Sample Output22这题氪了一波金。。。其实有很多解决方法,在这里我提供两种。首先定义合法为满足出现一个最大值它是假的。第一种:设f[i]f[i]f[i]为填到第iii个数都是不合法的。那么可以得到转移:f[i]=∑j=0min...原创 2018-10-09 10:50:18 · 936 阅读 · 0 评论 -
SDOI2017题解
round1round1round1就不贴代码了。。。放个R2R2R2代码。数字表格写过了树点涂色又写过了序列计数预处理质数模PPP意义下的个数,以及和数模PPP意义下的个数,设f[i][j]f[i][j]f[i][j]为iii表示是否出现过质数,jjj表示当前的和在模PPP意义下的值。矩乘即可。新生舞会分数规划,跑个费用流。(为什么我的KM跑不过。。。硬币游...原创 2019-03-12 11:05:19 · 406 阅读 · 0 评论 -
JSOI2016部分题题解
边做边更吧。。。独特的树叶判断两棵树是否相同可以使用树HashHashHash,我用的HashHashHash方式是按照子树大小来HashHashHash。然后你搞一个换根DPDPDP判一下即可。。。#include &amp;amp;amp;amp;lt;map&amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;lt;ctime&amp;amp;amp;amp;gt;原创 2019-03-02 19:05:15 · 275 阅读 · 0 评论 -
HAOI2018题解
这一年搞了我好久。。。但还都是比较可做的。奇怪的背包对于每一个物品iii,他能拼出的物品ddd满足d∣gcd(P,V[i])d|gcd(P,V[i])d∣gcd(P,V[i]),所以一个物品只需要对PPP去gcdgcdgcd即可。根据蜚蜀定理你一堆物品能拼出的物品为这堆物品的gcdgcdgcd的倍数。然后你做一个dpdpdp表示,f[i][j]f[i][j]f[i][j]表示前iii个...原创 2019-03-05 17:02:30 · 329 阅读 · 0 评论 -
BZOJ3462: DZY Loves Math II DP
Description我们称一个数nnn的S−S-S−质数拆分满足以下条件:1.p1+p2+p3+p4+...+pk=n1.p1+p2+p3+p4+...+pk=n1.p1+p2+p3+p4+...+pk=n2.p1&lt;=p2&lt;=p3&lt;=p4&lt;=...&lt;=pk2.p1&lt;=p2&lt;=p3&lt...原创 2019-02-20 15:24:53 · 232 阅读 · 0 评论 -
JXOI2018题解
排列问题比较明显的贪心吧,就先让排名最小的增加到排名第二的权值,再让排名第二的权值增加到排名第三的权值,sortsortsort完之后按顺序搞就好了,模数搞错弄了半天。。。#include <ctime>#include <cmath>#include <cstdio>#include <cstring>#include <cst...原创 2019-02-28 19:45:56 · 279 阅读 · 2 评论 -
【集训队作业2018】普通的计数题 DP+分治NTT
Description你有一个010101序列,初始时序列为空。你可以对序列进行两种操作:1.在序列末端插入一个000。2.在序列中删去一个子序列,并在序列末端插入一个111。这里对子序列的选取有一定限制,设子序列中包含xxx个000,yyy个111,则你选取的子序列必须满足:1.子序列不可为空,即x+y&gt;0x+y&gt;0x+y>02.当y&gt;0...原创 2019-01-16 22:09:42 · 372 阅读 · 0 评论 -
codeforces 1063F String Journey dp+后缀数组
Description有一个长度为nnn的字符串sss。定义一种划分为kkk个字符串构成的序列tk{tk}tk,满足:对于i&amp;gt;1i &amp;gt; 1i&gt;1,tititi 是ti−1ti−1ti−1的子串。s=u1t1u2t2⋅⋅⋅uktkuk+1s = u1t1u2t2 · · · uktkuk+1s=u1t1u2t2⋅⋅⋅uktkuk+1,其中uiuiui是任意字符...原创 2019-01-14 20:32:06 · 215 阅读 · 1 评论 -
Atcoder arc093F 容斥+DP
Decription有2^原创 2019-01-11 20:51:52 · 389 阅读 · 1 评论 -
[HNOI2007]梦幻岛宝珠 DP+折半
Description给你N颗宝石,每颗宝石都有重量和价值。要你从这些宝石中选取一些宝石,保证总重量不超过W,并输出最大的总价值。Sample Input4 108 95 84 62 54 138 95 84 62 516 75594681393216 55332 7732768 46729360128 407840112 6824576 372768 6...原创 2018-12-25 09:37:35 · 200 阅读 · 0 评论 -
Russian Code Cup 2017 - Finals C. Eleventh Birthday DP
Description给定n个数,求将这n个数按一定顺序拼在一起是11的倍数的方案数。Sample Input421 131 31 12312345 67 8491 2 3 4 5 6 7 8 9Sample Output22231680首先有一个性质,奇数位的和与偶数位的和相间的绝对值为11的倍数,那么这个数就为11的倍数。那么其实对于一个偶数长度的数他...原创 2018-10-03 00:08:20 · 178 阅读 · 0 评论 -
[PKUSC2018]星际穿越 倍增DP
Descriptionn个点的图,点i和[l[i],i)的所有点连双向边。每次询问(l,r,x)表示x到[l,r]的所有点的最短路径长度和。Sample Input71 1 2 1 4 653 4 61 5 71 2 41 2 61 3 5Sample Output3/213/53/22/11/1这篇blog写的不错,可以了解一下。#include &amp;l...原创 2018-09-20 21:57:16 · 418 阅读 · 0 评论 -
Divide by Zero 2018 and Codeforces Round #474 G. Bandit Blues DP+第一类斯特林数+分治FFT
Description给你三个正整数 n,a,b,定义A为一个排列中是前缀最大值的数的个数,定义B为一个排列中是后缀最大值的数的个数,求长度为n的排列中满足A = a且B = b的排列个数。Sample Input1 1 1Sample Output1考虑DP,设f[i][j]为前i位有j个不同前缀最大值方案数。我们从大到小插数,对于当前这个数他只有放在第一位才可能有新的前缀最...原创 2018-10-02 16:45:20 · 174 阅读 · 0 评论 -
BZOJ2958&3269序列染色 DP
Description 给出一个长度为N由B、W、X三种字符组成的字符串S,你需要把每一个X染成B或W中的一个。 对于给出的K,问有多少种染色方式使得存在整数a,b,c,d使得: 1 <= a <= b < c <= d <= N Sa,Sa+1,…,Sb均为B Sc,Sc+1,…,Sd均为W 其中b=a+K-1,d=c+K-1 由于方法可能很多,因此只需要输出最后的答案对10^9+7原创 2018-04-12 16:16:20 · 256 阅读 · 0 评论 -
复习:单调队列那些事er
最近GDKOI就要来了我决定好好复习算法,单调队列也是其中之一。这个算法我认为主要是一种优化的思想。并不是单单用来解决DP的题目。比如我复习凸包,旋转卡壳等都有用到这种思想,仙人掌也是直接运用了单调队列来优化其中的DP。我自己大概总结了一下这种算法缩不了空间,只能缩时间,往往能缩掉一个n的复杂度,在DP之类的题可能用的上。那么它是怎么优化时间的呢,首先如其名这是一个队列,并且成单调性递增或递减,那么原创 2018-01-24 16:41:29 · 466 阅读 · 1 评论 -
[SHOI2008]汉诺塔
Descripetion汉诺塔由三根柱子(分别用A B C表示)和n个大小互不相同的空心盘子组成。一开始n个盘子都摞在柱子A上,大的在下面,小的在上面,形成了一个塔状的锥形体。 对汉诺塔的一次合法的操作是指:从一根柱子的最上层拿一个盘子放到另一根柱子的最上层,同时要保证被移动的盘子一定放在比它更大的盘子上面(如果移动到空柱子上就不需要满足这个要求)。我们可以用两个字母来描述一次操作:第一原创 2016-09-08 13:56:36 · 511 阅读 · 0 评论 -
[SCOI2005]最大子矩阵
Description这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。Sample Input3 2 21 -32 3-2 3Sample Output9这题是DP,因为m很小,只有1和2。 首先设 sum[i][1]=sum[i-1][1]+sum[i][1] sum[i][2]=sum[i-1][2]+sum[原创 2016-08-26 12:24:22 · 461 阅读 · 2 评论 -
[poj2441]Arrange the Bulls
DescriptionN个bull,M个barn(N,M<=20),每个bull都有几个自己喜欢的barn,要求为每个bull分配一个barn,使得每个bull所分到的barn都是自己喜欢的,且每个barn至多只能容纳一个bull。求合法的分配方案的种数。Sample Input3 42 1 42 1 32 2 4Sample Ouput4原创 2016-08-24 21:15:30 · 484 阅读 · 0 评论 -
[hdu2167]Pebbles
Description给你一个N*N(3<=N<=15)个矩阵,要你选择若干个数(每个数的范围在[10,99]),使得最后所选的数总和最大。选数的规则是如果选了某个数,那么它的八个相邻方向的数都不能选。Sample Input71 24 95 56 5485 50 74 94 2892 96 23 71 1023 61 31 30 4664 33 32 95 8978 78 11 55 2原创 2016-08-24 16:04:09 · 410 阅读 · 0 评论 -
[SCOI2005]互不侵犯king
Description在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。Sample Input3 2Sample Output16这一题又是状压。 因为只有和放和不放,这一题就很想我曾经做过的一道题Pebbles,有兴趣可以点以下链接: http://blog.youkuaiyun.com/xgc_w原创 2016-08-25 11:07:58 · 450 阅读 · 0 评论 -
[HAOI2008]硬币购物
Description硬币购物一共有4种硬币。面值分别为c1,c2,c3,c4。某人去商店买东西,去了tot次。每次带di枚ci硬币,买si的价值的东西。请问每次有多少种付款方法。Sample Input1 2 5 10 23 2 3 1 101000 2 2 2 900Sample Output427大概思路是: dp预处理出每种硬币没有上限的情况,时间复杂度位O(S)。 接下来对于每个询问原创 2016-08-23 15:56:57 · 298 阅读 · 0 评论 -
[ZJOI2008]生日聚会Party
Describe给你男孩数目n(1<=n<=150),女孩数目m(1<=m<=150)。现在要你求有几种安排的方法使得任意一段差值最多为k(1<=k<=20)。Sample Input1 2 1Sample Output1这一题一看就是DP 设dp[i][j][x1][x2] 表示当前状态i个男孩j个女孩 男孩最多比女孩多x1个 女孩最多比男孩多x2个 时的方案种数。 那么推出DP方程原创 2016-08-23 22:40:19 · 355 阅读 · 0 评论 -
[SCOI2007]排列perm
Description给一个数字串s和正整数d, 统计s有多少种不同的排列能被d整除(可以有前导0)。Sample Input7000 1001 11234567890 1123434 21234 712345 1712345678 29Sample Output13362880090361398我一开始想到的是排列。呃……果断超时。 后来呢,想到了01之类的二进制原创 2016-08-29 15:27:41 · 598 阅读 · 0 评论 -
[Sdoi2014]数数 数位DP+AC自动机
Description 我们称一个正整数N是幸运数,当且仅当它的十进制表示中不包含数字串集合S中任意一个元素作为其子串。例如当S=(22,333,0233)时,233是幸运数,2333、20233、3223不是幸运数。 给定N和S,计算不大于N的幸运数个数。Sample Input 10 3 1 0 3 3 1 0 3Sample Output 14好神啊,AC...原创 2018-04-25 22:29:03 · 201 阅读 · 0 评论 -
[CEOI2018]Cloud computing 背包dp
Descripition 有n个电脑,电脑有三个属性s,f,v。 有m个要求,每个要求也有三个属性,S,F,V要求选出若干个电脑,使它们s总和大于S,并且每台电脑f大于F,一台电脑在一个要求中用过就不可放到其他要求中。 求总能完成要求总V-所选电脑总v最大。Sample Input 4 4 2200 700 2 1800 10 20 2550 9999 4 2000 750...原创 2018-09-17 00:46:43 · 267 阅读 · 0 评论 -
[HAOI2010]订货 DP
Description某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定第一月月初的库存量为零,第n月月底的库存量也为零,问如何安排这n个月订购计划,才能使成本最低?每月月初订购,订购后产品立即到货,进库并供应市场,于当月被售掉则不必付存贮费。假设仓库容量为S。Sample Input3 1 10002 4 ...原创 2018-09-25 20:14:02 · 200 阅读 · 0 评论 -
[HAOI2011]problem a DP
Description一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低。”问最少有几个人没有说真话(可能有相同的分数)Sample Input32 00 22 2Sample Output1这题的话,推一下限制的条件即可,大概有三个。然后树状数组+DP即可#include &lt;cstdio&gt;#include &lt;cstri...原创 2018-09-25 19:26:33 · 188 阅读 · 0 评论 -
[HNOI2001] 求正整数 DP+取对数优化
Description对于任意输入的正整数n,请编程求出具有n个不同因子的最小正整数m。Sample Input4Sample Output6对于OI中的一高精度问题,如果不涉及加减法,我们可以考虑取对数来进行优化。如这题:对于一个有C个因子的数,假设这个数可以表示为:p1k1∗p2k2∗p3k3∗...∗pnknp1^{k1}*p2^{k2}*p3^{k3}*...*pn...原创 2018-09-19 22:07:30 · 300 阅读 · 0 评论 -
[HAOI2008]玩具取名 DP
Description有一套玩具,想给玩具命名。首先他选择WING四个字母中的任意一个字母作为玩具的基本名字。然后他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替,使得自己的名字能够扩充得很长。Sample Input1 1 1 1IIWWWWIGIIIISample OutputIN水题,没什么好说的。。。#include &lt;cstd...原创 2018-09-25 09:43:45 · 196 阅读 · 0 评论