dp
文章平均质量分 71
faze clan _Niko
这个作者很懒,什么都没留下…
展开
-
完全背包问题解法
前提:读者已经会背包问题的一维解法O(n^3)的复杂度的算法实质上就是对能拿多少次进行一个枚举,这里面指的就是k的个数#include<iostream>using namespace std;const int N = 1005;int f[N];int v[N],w[N];int main(){ int n,m; cin>>n>>m; for(int i=1; i<=n; i++) cin>...原创 2020-07-23 01:07:01 · 205 阅读 · 0 评论 -
01背包问题一维与二维解法
算法思路f[i][j]:表示的是只看前i个物品里面,体积为j种最大的价值那就分为两种,拿和不拿1.f[i][j]=f[i-1][j] 你不拿的情况和f[i-1][j]一致2.f[i][j]=max(f[i][j],f[i-1][j-v[i]]+w[i])从小到大依次计算即可#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int...原创 2020-07-23 00:59:03 · 303 阅读 · 0 评论 -
LIS(最长递增子序列)的动态规划算法O(n*n)
LIS 最长递增子序列 点击此处看作者参考的博客定义:从一个序列中选出一段长度最长可以不连续的且一定递增的子序列例如 A 4 5 7 1 3 9最长子序列为 4 5 7 9定义dp[i]为:从左至右从序列A中选定 最后一位为A[i]的子序列,在这些子序列中,连续递增区间最大的值我们先用人脑自然的方法去写出每一位数对应的dp[i]dp[1]=1; dp[2]=2; dp[3]=3; dp[4]=1; dp[5]=2; ...原创 2020-07-07 06:22:10 · 157 阅读 · 0 评论