当前位置: 首页 > wzjs >正文

网站设计速成北京网站营销与推广

网站设计速成,北京网站营销与推广,网络认证登录页面,wordpress主题 kratos准备:完全背包理论基础-二维DP数组 1.完全背包就是同一物品可以往里多次装 2.这里先遍历背包 或物品都可以 3.dp[i][j] 表示从下标为[0-i]的物品,每个物品可以取无限次,放进容量为j的背包,价值总和最大是多少 518.零钱兑换II (1)题目描述…

准备:完全背包理论基础-二维DP数组

1.完全背包就是同一物品可以往里多次装
2.这里先遍历背包 或物品都可以
3.dp[i][j] 表示从下标为[0-i]的物品,每个物品可以取无限次,放进容量为j的背包,价值总和最大是多少

518.零钱兑换II

(1)题目描述:

(2)解题思路:

class Solution {
public:int change(int amount, vector<int>& coins) {vector<int> dp(amount + 1, 0);dp[0] = 1; // 只有一种方式达到0for (int i = 0; i < coins.size(); i++) { // 遍历物品for (int j = coins[i]; j <= amount; j++) { // 遍历背包if (dp[j] < INT_MAX - dp[j - coins[i]]) { //防止相加数据超intdp[j] += dp[j - coins[i]];}}}return dp[amount]; // 返回组合数}
};

(3)总结:

1.状态表示:
dp[i][j] 表示:从前 i 个物品中挑选,总体积不超过 j ,所有的选法中,能挑选出来的最⼤价值。(同01背包问题)
2. 状态转移⽅程:
3. 初始化:
我们多加⼀⾏,⽅便我们的初始化,此时仅需将第⼀⾏初始化为 0 即可。因为什么也不选,也能满⾜体积不⼩于 j 的情况,此时的价值为 0 。
4. 填表顺序:
根据状态转移⽅程,我们仅需从上往下填表即可。
 

377. 组合总和 Ⅳ

(1)题目描述:

(2)解题思路:

class Solution {
public:int combinationSum4(vector<int>& nums, int target) {vector<int> dp(target + 1, 0);dp[0] = 1;for (int i = 0; i <= target; i++) { // 遍历背包for (int j = 0; j < nums.size(); j++) { // 遍历物品if (i - nums[j] >= 0 && dp[i] < INT_MAX - dp[i - nums[j]]) {dp[i] += dp[i - nums[j]];}}}return dp[target];}
};

(3)总结:

1.和上一题基本一样,只是在遍历顺序上不同(本题不同的排列顺序也算一种情况)
2.强调顺序时一定是先遍历背包再遍历物品

70. 爬楼梯(进阶版)

(1)题目描述:

(2)解题思路:

#include <iostream>
#include <vector>
using namespace std;
int main() {int n, m;while (cin >> n >> m) {vector<int> dp(n + 1, 0);dp[0] = 1;for (int i = 1; i <= n; i++) { // 遍历背包for (int j = 1; j <= m; j++) { // 遍历物品if (i - j >= 0) dp[i] += dp[i - j];}}cout << dp[n] << endl;}
}

(3)总结:

1.确定dp数组以及下标的含义
dp[i]:爬到有i个台阶的楼顶,有dp[i]种方法。
2.确定递推公式
求装满背包有几种方法,递推公式一般都是dp[i] += dp[i - nums[j]];
本题呢,dp[i]有几种来源,dp[i - 1],dp[i - 2],dp[i - 3] 等等,即:dp[i - j]
那么递推公式为:dp[i] += dp[i - j]
3.dp数组如何初始化
既然递归公式是 dp[i] += dp[i - j],那么dp[0] 一定为1,dp[0]是递归中一切数值的基础所在,如果dp[0]是0的话,其他数值都是0了。
下标非0的dp[i]初始化为0,因为dp[i]是靠dp[i-j]累计上来的,dp[i]本身为0这样才不会影响结果
4.确定遍历顺序
这是背包里求排列问题,即:1、2 步 和 2、1 步都是上三个台阶,但是这两种方法不一样!
所以需将target放在外循环,将nums放在内循环。
每一步可以走多次,这是完全背包,内循环需要从前向后遍历。
5.举例来推导dp数组
 

http://www.dtcms.com/wzjs/410973.html

相关文章:

  • 蓝潮网站建设查询收录
  • 安徽合肥制作网站公司吗谷歌google地图
  • 在家做的客服正规平台怎么seo关键词优化排名
  • 网址2020年你懂我意思吧seo营销是什么意思
  • 医疗器械招商网站大全百度排名推广
  • 泰州手机网站制作b站广告投放平台入口
  • 有域名做网站如何做网络营销?
  • 一级a做爰片视频网站网站关键词怎么添加
  • 保定网站建设广告公司业务推广
  • 青岛开发区建设局网站中国十大企业培训公司
  • 春播网站是谁做的网盘搜索引擎入口
  • 网站开发与维护 专业外贸推广如何做
  • 网站后台管理密码忘了厦门seo招聘
  • 网站做反向解析国内seo公司
  • 建设网站全部流程seo网站优化培训找哪些
  • 做超链接的网站沈阳企业网站seo公司
  • 注册一个互联网公司需要多少钱旺道seo优化
  • 阿里云免费域名注册兰州网站seo诊断
  • 个人养老保险缴费明细查询seo优化推广软件
  • 未来做那些网站能致富视频剪辑培训班一般学费多少
  • ping网站域名福州网站建设策划
  • 主题 外贸网站 模板下载安徽seo网络优化师
  • 北京做域名公司seo网站页面优化包含
  • 连云港企业网站制作西安seo推广优化
  • 营销中台汕头seo排名
  • 企业网站建设的作用留号码的广告网站不需要验证码
  • 上海网站制作与推广关键词如何快速排名
  • 注册个人工作室流程及费用东莞seo关键词
  • 自己建设博客网站跨界营销案例
  • 【郑州网站建设】营销团队公司