随笔分类 -  DP

摘要:线型模型(LIS) 1 //线性dp模板 顺推 2 f[1]=1;//恒成立 3 for(int i=2;i<=n;i++)//从到第2个数开始 4 { 5 f[i]=0;//每次重新开始 赋初值 6 for(int j=i-1;j>=1;j--)//从i到1求中间几个符合 7 { 8 if(a[i 阅读全文
posted @ 2022-09-23 16:46 4lovls 阅读(18) 评论(0) 推荐(0) 编辑
摘要:最长上升子序列 分析:经典dp板子题 代码: #include<iostream> #include<cstdio> using namespace std; int n,a[1001],f[1001]; int main() { cin>>n; for(int i=1;i<=n;i++) cin> 阅读全文
posted @ 2022-09-22 14:01 4lovls 阅读(14) 评论(0) 推荐(0) 编辑
摘要:dp背包问题 公式: d[j]=max(d[j],d[j-w[i]]+c[i]); 数组d表示当前容量可以装的最大价值,w[i]是重量,c[i]是价值。 要么装,要么不装: 不装:当前就是最大重量d[j] 装:先在当前容量j中给当前重量w[i]预留一个位置(d[j]-w[i]),然后再加上当前价值c 阅读全文
posted @ 2022-09-22 13:59 4lovls 阅读(27) 评论(0) 推荐(0) 编辑
摘要:数字三角形 分析:就是三角形从下往上推,将当前的数加上他上面的数和当前的数加上他右上面的数进行比较(输入的时候是左对齐的),如果前者大,当前的数上面的数就成了现在当前的数(而且当前的数的上面的数的数值是当前的数加上当前的数上面的数)(虽然很绕吧但是看图就挺简单的了...),反之。最后就是输出最上面的 阅读全文
posted @ 2022-09-18 20:46 4lovls 阅读(84) 评论(0) 推荐(0) 编辑
摘要:斐波那契数列 分析:斐波那契数列是后一个数等于前两个数之和,所以开一个变量存每个算出的数所在的位置,然后输出指定的第a个数的值。在这里开一个maxx,得出最大的a是谁,就把斐波那契数算到最大的a。 (搜索算法) 代码: #include<iostream> #include<cstdio> usin 阅读全文
posted @ 2022-09-18 19:17 4lovls 阅读(88) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示