
DP
文章平均质量分 52
Thomas_ZQQ@Runespoor
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【题解】CCPC-Final 2019 C - Mr. Panda and Typewriter
题目题意给一个打字机,有三种操作:打一个字符花费X的时间复制一段已经打过的子串到剪贴板,花费Y的时间粘贴剪贴板内容到串末尾,剪贴板内容不变,花费Z的时间求打出给定串最短的用时要求复杂度 O(n2)O(n^2)O(n2)题解很容易想到DP,在观察一下这个状态是n2n^2n2的:f[i][j]:表示已经输入了i,当前剪贴板是当前串长度为j的后缀,j=0表示剪贴板为空f[i][j...原创 2020-02-14 10:45:53 · 623 阅读 · 0 评论 -
【题解】Codeforces Round #569 (Div. 1) - 1179D. Fedor Runs for President
链接题意树上加一条边,使简单路径数量最多题解加一条边以后,会生成一个环。环上挂着的子树内部仅有一条路径,子树之间就有两条路径。所以要最小化的式子:∑i为环上点szi∗(szi−1)/2\sum_{i为环上点} sz_i*(sz_i - 1) / 2∑i为环上点szi∗(szi−1)/2然后就考虑树形DP,f[x]表示x向父亲延伸出的路径在最终的环上,在子树中上式的最小值f[x] ...原创 2020-02-12 15:21:22 · 301 阅读 · 1 评论 -
codeforces 995 F. Cowmpany Cowmpensation 树形dp,或多项式插值
codeforces 995 F. Cowmpany Cowmpensation题解首先想到把权值离散化,如果知道总共用了i种权值,方案数*C(D,i)一开始我的想法是dp[i][j],记录子树中有多少种不同权值(分级),但是这样合并的时候需要枚举重复的个数,只能是n^3换个角度看dp,思想一样,但是我们可以重新定义dp[i][j],根结点i的权值不超过j注意这里的权值范围是1-n,而不...原创 2019-01-24 22:21:45 · 320 阅读 · 0 评论 -
【学习小结】期望,概率DP
先来看几道好题bzoj 5058: 期望逆序对把贡献按每对数分别统计,对于一对数,只需要统计他们相对位置关系,如果被换到其他位置概率等同,把相同概率的情况缩在一起。然后就有7种不同情况,讨论后矩阵快速幂转移用数状数组统计前面那个贡献,优化到nlogn具体实现需要维护正反两个树状数组待写CF 838D**加入第n + 1位置,如果有人做则不合法。问题转化成一个环上顺逆时针走,每个...原创 2019-02-04 08:52:42 · 552 阅读 · 1 评论 -
【题解】codeforces1097H数位dp+合并技巧
题目题意按原题给出一个序列生成方式。求第[l,r]为间有多少子串A满足A <= B<= 定义为每一位都小于等于题解思路:维护长度为d^i的区间的信息,使得区间可以合并。这样合并区间的思路非常常见。在计数和线段树。。。都可以用到注意:维护的时候如果位数不够补充成0 这样合并的时候不用再check整块是否合法关于位运算,用all维护所有状态,可以方面的实现删除和保留一...原创 2019-02-08 12:26:11 · 419 阅读 · 0 评论 -
【题解】codeforces1097G. Vladislav and a Great Legend 树形dp+计数
题目连接题意给定一棵树,选择一个点集合X,权值F(X)= 联通该集合边的条数求对所有点集合X,sigma(F(X) k)n &amp;lt;= 1e5 , k &amp;lt;= 200题解一开始以为用斯特林数维护k次方。但是不太会转化题解给出了一个巧妙的转化:把k次方看成选一个k维向量,统计每个向量的出现次数。为了统计方便,先统计有序且不重复出现的i维向量(1&amp;lt;=i&amp;lt;=k),然后...原创 2019-02-09 09:42:21 · 261 阅读 · 0 评论 -
【题解】CF1060F Shrinking Tree 概率树形dp 好题!
题面link题目描述(中文)对于一棵有 nn 个节点的树 TT 。当 TT 的节点数多于一个时,反复执行以下操作:等概率地选取 TT 中的一条边。收缩选取的边:即合并这条边连接的两个点 uu 和 vv 。得到的新点的编号等概率地从 uu 和 vv 中选取一个。当这个过程结束时, TT 只剩一个节点了,它的编号可能是 1,…,n中的任意一个数 。对于每个编号,请输出最终得到这个编号的概率。...原创 2019-02-11 16:38:15 · 410 阅读 · 0 评论 -
【题解】HDU 4532 XHXJ's LIS 数位dp
题面&题解注意:lis用记录每个长度的末尾的方法求,性质是每个末尾严格递增,所以可以简化状态! 前导0可以直接在处理lis的转移的时候特判需要把k相同的询问放在一起,然后预处理(或者分开记忆化)不顶上界的情况。否则会TLE!#include<bits/stdc++.h>using namespace std;#define rep(i,l,r) for(regi...原创 2019-02-12 17:47:59 · 200 阅读 · 0 评论 -
【题解】codeforces 814E. An unavoidable detour for home 图论计数DP+最短路
题目题解最短路DP的最常用技巧:把 图分层。按照和起点的最短路长度。然后我们可以一层一层加入点。f[i][j][k]表示当前i个点,上一层j个一度点,k个二度点。DP的时候要考虑加点顺序,否则会算重:先考虑当前图只有二度点,则应该枚举构成环。每次枚举最后一个点的环大小,不能直接连边,会连出重边。然后加入一度点,考虑最后一个加入的点和前面那种点连边然后加入当前层的点,同样考虑和前面那...原创 2019-02-25 22:07:57 · 269 阅读 · 0 评论 -
【学习总结】DP优化:决策单调性 ,四边形不等式,convex hull trick及其应用
决策单调性普通单调性四边形不等式p[l][r−1]<=p[l][r]<=p[l+1][r] p[l][r- 1] <= p[l][r] <= p[l + 1][r] p[l][r−1]<=p[l][r]<=p[l+1][r]注意事项决策单调性要把“决策”定义清楚!如果没有进行决策(沿用上一层决策),或者当前状态不合法一定...原创 2019-05-30 19:42:01 · 553 阅读 · 0 评论 -
Codeforces 979 E Kuro and Topological Parity
Codeforces 979 E简要题意:每个点可以向标号更大的点连边,所以图是DAG。每个点有一个颜色,一部分点已经给出。定义交替路径为颜色交替,问给图染色和连边后,图的交替路径方案数为奇数/偶数的方案题解:首先只需要记录前i个点中,以其结尾的路径方案数为odd/even,本身颜色为black/white的点各有多少个记为ob,ow,eb,ew 令f[i][ob][ow][eb][e...原创 2019-01-24 12:20:45 · 277 阅读 · 0 评论 -
Codeforces Round #446 (Div. 1)
D. Sloth让我们暴力树形dp吧,题解的性质+分类讨论太难想了推清楚所有转移细节!!f[i][0/1][0/1][0/1/2/3] : 当前以i为根的子树,根是否匹配,子树中是否有未匹配点,删边加边的状态删边加边的状态:0:未删除1: 删除且那块中有未匹配点2: 删除且无未匹配点3: 已经删除和加边方案数要在删除和加入的时候*sz(如果可以任选点连的话)转移分几类:直接匹配...原创 2019-01-12 11:25:09 · 242 阅读 · 0 评论 -
loj #2540. 「PKUWC2018」随机算法 状压DP
题目:点击打开链接题解:点击打开链接关键点:转化为状压DP算方案数,考虑优化,使得当前状态只需记录是否被点考虑过,而未被考虑过的点一定不和最大独立集联通。概率=合法方案/总方案 因为每个子集中独立集也一定最大(不与外界联通),所以可以不用记当前点数。 只需在更新时保证最大即可#include<bits/stdc++.h>using namespace st...原创 2018-07-03 12:22:41 · 552 阅读 · 0 评论 -
LOJ #6433. 「PKUSC2018」最大前缀和(状压dp)
题面:点击打开链接题解:点击打开链接(来自一位大佬)学到了几点:算sum[S]可以用lowbitO(2^n)求解 求最大前缀和其实考虑什么情况满足是最大前缀和即可一段和为0时要用最小表示法去重,相同的前缀和只统计一次。#include<bits/stdc++.h>using namespace std;#define maxn 1200000#define lowbit(x)...转载 2018-07-03 21:57:30 · 468 阅读 · 0 评论 -
LOJ #2542. 「PKUWC 2018」随机游走(最值反演 + 树上期望dp)
题目:点击打开链接题解:点击打开链接关键:minmax反演。求max转化为求子集的min和 求min时期望dp转移时递推系数即可 对询问记忆化不用枚举子集,好像有个n*2^n的优化 先留坑#include<bits/stdc++.h>using namespace std;#define maxn 500020#define lowbit(x) (x&...转载 2018-07-04 15:59:22 · 322 阅读 · 0 评论 -
bzoj 2064 分裂 状压DP
2064: 分裂点击打开链接Description背景: 和久必分,分久必和。。。 题目描述: 中国历史上上分分和和次数非常多。。通读中国历史的WJMZBMR表示毫无压力。 同时经常搞OI的他把这个变成了一个数学模型。 假设中国的国土总和是不变的。 每个国家都可以用他的国土面积代替, 又两种可能,一种是两个国家合并为1个,那么新国家的面积为两者之和。 一种是一个国家分裂为2个,那么2个新国家的面积...原创 2018-07-04 16:52:56 · 182 阅读 · 0 评论 -
LOJ #2537. 「PKUWC 2018」Minimax (线段树合并 优化dp)
题目:点击打开链接题解关键:首先是dpi,j表示第i个点选第j小的概率。转移用前缀和优化。 然后发现转移时只涉及到子树内的值,于是想到线段树合并。 合并x,y时,若都有则递归,否则直接乘相应系数。 递归时直接算前、后缀和,因为当x或y为空时不需计算 合并的时候相当于对值域分治,所以把贡献...原创 2018-07-04 18:23:52 · 406 阅读 · 0 评论 -
bzoj1559: [JSOI2009]密码 AC自动机+状压DP
题目https://www.lydsy.com/JudgeOnline/problem.php?id=1559 题解https://www.cnblogs.com/LadyLex/p/7514403.html 关键:首先不要看错题意,是自己随便构造串包含给定串即可,不是用给定串拼接(所以拼接的方案数怎么做啊) AC自动机疯狂打错,我在干什么? ...原创 2018-07-12 11:00:52 · 261 阅读 · 0 评论 -
bzoj1806: [Ioi2007]Miners 矿工配餐 DP
Description 现有两个煤矿,每个煤矿都雇用一组矿工。采煤工作很辛苦,所以矿工们需要良好饮食。每当一辆食品车到达煤矿时,矿工们便会产出一定数量的煤。有三种类型的食品车:肉车,鱼车和面包车。 矿工们喜欢变化的食谱。如果提供的食品能够不断变化,他们的产煤量将会增加。每当一个新的食品车到达煤矿时,矿工们就会比较这种新的食品和前两次(或者少于两次,如果前面运送食品的次数不足两次)的食品,并且: ...原创 2018-07-15 19:14:48 · 203 阅读 · 0 评论 -
CS Academy Gcd on a Circle(dp + 线段树)
好题! 题目 题解非常详细这里写链接内容给你一个长为 n 的环,你可以把它断成任意 k 段 (1#include<bits/stdc++.h>using namespace std;#define maxn 100020#define rep(i,l,r) for(register int i = l ; i <= r ; i++)#define repd(i...转载 2018-09-17 15:33:48 · 233 阅读 · 0 评论 -
bzoj2958&3269 序列染色 DP计数
Description给出一个长度为N由B、W、X三种字符组成的字符串S,你需要把每一个X染成B或W中的一个。对于给出的K,问有多少种染色方式使得存在整数a,b,c,d使得:1<=a<=b<c<=d<=NSa,Sa+1,…,Sb均为BSc,Sc+1,…,Sd均为W其中b=a+K-1,d=c+K-1由于方法可能很多,因此只需要输出最后的答案对10^9+7取...原创 2018-10-25 19:48:59 · 230 阅读 · 0 评论 -
bzoj 3622 容斥+DP计数
题目&&题解:点击打开链接题意:给你两个序列 a,b 每个序列共 nn 个数 , 数之间两两不同问 a 与 b 之间有多少配对方案 使得 ai>bi的对数 比 bi>ai的恰好多 k对.(1≤k≤n≤2000)代码写得是真的丑,这么简单的题还调了好久!一定要把容斥的每一个细节推清楚再写,否则边界写错了挺难查出的!下次这种简单的(无代码量)题10分钟要写完调完!用r...原创 2018-07-08 15:29:59 · 249 阅读 · 0 评论