![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
cqbz_luoyiran
这个作者很懒,什么都没留下…
展开
-
CF909C python Indentation
前言这次模拟赛出的好bt,这道题被出成T1,只有一个人A了,而我却被卡到了80pts80pts80pts。分析看一眼题目与数据范围,搜索时间一定炸,显然是一道DpDpDp。设dp[i][j]dp[i][j]dp[i][j]为以iii结尾,前面有jjj个空格的总方案数。我们可以分为两种情况:1.s[i-1]=‘f’这种情况比较简单,因为有一个限制是每一个fff下面必须不为空,所以说当前这个的位置必须是在上一个字符的下一层,也就是下一个包含在上一个中,for example:f x x原创 2020-12-29 16:45:27 · 1914 阅读 · 7 评论 -
洛谷 P5144 蜈蚣
题目描述分析首先我们得知道什么是异或,这道题的核心就在于看到异或进行转移。异或xor,^,A xor B就是再A,B两个数的二进制数中相同为0,不同为1。一些定理:0xorA=A;0 xor A = A;0xorA=A;AxorA=0;A xor A = 0;AxorA=0;Axor(BxorC)=(AxorB)xorC;A xor (B xor C) = (A xor B) xor C;Axor(BxorC)=(AxorB)xorC;因为这道题是的蜈蚣是一节一节的,并且是要求蜈蚣分为m段再异或后原创 2020-10-07 19:57:57 · 164 阅读 · 0 评论 -
Teamwork G 题解
Teamwork G理想分数100,实际分数100题目描述自认为是一道很简单的DP题目,考场上花了3min看题,5min想DP状态转移方程式,5min打出,0s过样例,5min构数据查错,一共二十分钟就过了这道题。感觉比第1题还水。分析一道很水的线性动态规划,设dp[i]表示前i个人最多能得到的技能水平之和,他对dp[min(i + k,n)]这个之前的有影响,而后面的又由后面k(j<=n)个的最大值得到,于是他就可以得到一个十分简单的状态转移方程f[j]=max(f[j],f[i]+sum原创 2020-10-07 15:45:22 · 144 阅读 · 0 评论 -
树形DP总结
概念给定一棵有N个节点的树(通常是无根树,也就是有N-1条无向边),我们可以任选一个节点为根节点,从而定义出每个节点的深度和每棵子树的根。一般就以节点从深到浅(子树从小到大)的顺序作为DP的“阶段”。DP的状态表示中,第一维通常是节点编号(代表以该节点为根的子树)。大多数时候,我们采用递归的方式实现树形动态规划。对于每个节点,先递归在它的每个子节点上进行DP,在回溯时,从子节点向父节点进行状态转移。作用最大独立子集对于一个树形结构,所有的孩子和他们的父亲存在排斥(选了孩子就不能选父亲,泛指同理),原创 2020-10-04 14:11:11 · 264 阅读 · 1 评论 -
Coloring Brackets[DP]
题目描述Petya遇到了一个关于括号序列的问题: 给定一个字符串S,它代表着正确的括号序列,即(“(”)与 (“)”)是匹配的。例如:“(())()” 和 “()”是正确的,“)()”与“(()”则不是正确的。 在正确的括号序列中,一个左边的括号一定是匹配一个右边的括号(反之亦然)。例如,在下图中,第 3 个括号匹配第 6 个括号,第 4 个括号匹配第 5 个括号。现在你需要对一个正确的括号序列做涂色操作,严格满足以下三个条件:1、每个括号要么不涂色,要么涂红色,要么涂蓝色。2、一对匹配的括号需要原创 2020-07-19 22:00:07 · 160 阅读 · 0 评论 -
分离与合体[DP+DFS]
题目描述经过在机房里数日的切磁,LYD从社神牛那里学会了分离与合体,出关前,杜神牛给了他一个测试杜神牛造了个区域,它们紧邻着排成了一行,编号1-n。在这經个区域里都放着一把OI界的金钥匙,每一把都有一定的价值,LYD当然想得到它们了。然而杜神牛规定LYD不可以一下子把它们全部拿走,而是每次只可以拿一把。为了尽快地拿到所有的金钥匙,LYD自然就用上了刚学的分离与合体特技。开始LYD可以选择从1~n-1的任何一个区域(记为K)进入,进入后LYD会在K区域发生分离,从而分离为两个小LYD。分离完成的同原创 2020-07-19 20:47:40 · 171 阅读 · 0 评论 -
区间DP学习笔记
基本概念:区间DP是什么?正如其名,是以区间长度为阶段的一种DP。这类DP的解法较为固定,先枚举区间长度,再枚举左端点,之后枚举断点,分为左右两部分进行求解,总的来说,可以转移出这样一个模板状态转移方程dp[i][j] = min(dp[i][k] + dp[i + 1][k] + 决策),决策根据题目要求所答。光知道到基本概念还不行,讲完了简单的基本概念,来两道简单的例题过过手。例题1:石子合并题目传送门分析:本题是区间DP最经典的一道模板题,几乎是区间DP的模板,但很容易误解成贪心,样例也制造了原创 2020-06-22 20:46:49 · 195 阅读 · 2 评论 -
[JOISC2014]挂饰
[JOISC2014]挂饰难度:提高+/省选-分类:动态规划,01背包,贪心,剪枝分析:初看这道动态规划题,可以看出是一道01背包题,但这道题不同于其他01背包的地方在于挂钩的问题,其挂钩数量如果少于后面挂饰挂钩的数量,便会多次挂上却没有意义,于是我们可以设置一个结构体,将结构体按照挂钩数量从大到小排序,保证先算挂钩数量多的,让后按照01背包模板打上去就可以了,但要注意下表小于0的情况,就把这个挂件扔到手机上就行了,于是可得转移方程:dp[i][j] = max(dp[i - 1][j],dp[i原创 2020-06-19 21:22:21 · 227 阅读 · 0 评论