随笔分类 - DP基础
摘要:题目链接 A. Average Height 奇数放一侧,偶数放一侧即可。 AC代码如下: #include<cstring> #include<algorithm> #include<cmath> #include<iostream> #include<queue> #include<cstdio
阅读全文
摘要:本题的数据范围究极大。 按NOIP提高组在2016有过一样的题.不过数据规模就这道题的1~4结点。用组合数的递推公式加上二维前缀和维护即可。 洛谷的弱化数据版AC代码如下: #include<bits/stdc++.h> #define MAXN 2005 using namespace std;
阅读全文
摘要:题目链接 数位DP板子题 数位DP知识点: AC代码如下: #include<bits/stdc++.h> using namespace std; typedef long long ll; int a,b,lim[15],dp[10][10];//第一维表示位数,第二维表示首数字是谁。dp表示这
阅读全文
摘要:本题的m最大也才20.那么就轻松状压DP。 关于状压DP: 因此我们开个vis数组记录需要选几袋,再开个ki数组记录下每种情况状态压缩后的值即可。 AC代码如下: #include<bits/stdc++.h> using namespace std; typedef long long ll; i
阅读全文
摘要:三题滚粗。(至少现在可以稳3题了呜呜) A.Domino on Windowsill 本题是贪心的思想。如果第一行和第二行白色块的个数相同,那么全摆成竖的。白色块的数量最多为k1.如果不同就看他们之间的差值为多少,那么就能在插入差值除以2个白色块。即min(k1,k2)+abs(k1-k2)/2.黑
阅读全文
摘要:题目链接 这是一道终极经典的树形DP的例题。 树形dp就是将DP的数据放到了一棵树上。每个父节点与其子节点的值有关。推出如何建树和递推公式即可。 f[i][j].(j=1/0)i表示这是谁,j为1时表示来,0时表示不来。这个式子表示i来或不来时的最大快乐值。 设k为他的下属。 则f[i][1]+=f
阅读全文
摘要:题目链接 本题是区间DP。即维护区间内的最大操作价值。 f[i][j]=max(f[i][j],f[i][k]+f[k][j]).f[i][j]为第i个数到第j个数区间内的最大操作价值。 对每个区间附初值abs(a[j]-a[i])*(j-i+1)即可。 #include<cstdio> #incl
阅读全文
摘要:题目链接 这题的思路是动态规划。 找到每个数以该数为结尾的最长上升子序列长度和以该数为开始的最长下降子序列的长度。 其中求以该数为开始的最长下降子序列的长度可以看做从最后一个数开始往前数,以该数为结尾的最长上升子序列的长度。 求最长上升子序列长度。令f[j]=max(f[j],f[k]+1).(k<
阅读全文
摘要:题目链接 这题是完全背包问题。背包容量变成了最后的平方和。装进背包的物品为各个平方数。且可以取无限个。 dp[i][j]+=dp[i−k∗k][j−1]。i为平方和。j为由几个数组成的这个平方和。 最后答案为j=1~4的和。 (又是一道看了题解才会的题) #include<cstdio> #incl
阅读全文
摘要:题目链接 依旧是01背包问题。(也可以看成是多重背包问题。但反之多重背包问题也是化作01背包来解) 对于到第i朵花,摆j朵花的f[i][j]=f【i-1】【j-a[i]】+f【i-1】【j-a【i】+1】+…+f【i-1】【j-1】。 (dp真的是看一题题解会一题,做一题不会一题nnd) #incl
阅读全文
摘要:题目链接 这是一道dp题。 传到一个人手上的情况数等于上一轮传到左边的人的情况数加上传到右边的人的情况数。 即f【i】【j】=f【i-1】【j-1】+f【i+1】【j+1】. 注意一下环的边界。 #include<cstdio> #include<algorithm> #include<cstrin
阅读全文
摘要:题目链接 01背包问题。 详见背包九讲。 #include<cstdio> #include<algorithm> #include<cstring> using namespace std; typedef long long ll; int c,h,w[5005],dp[50005]; int
阅读全文
摘要:题目链接 本题就是完全背包。直接套用模板即可。 关于完全背包的讲解可以去看背包九讲。 注意开long long。 #include<cstdio> #include<algorithm> #include<cstring> using namespace std; typedef long long
阅读全文

浙公网安备 33010602011771号