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

河北省城乡和建设厅网站南京关键词优化软件

河北省城乡和建设厅网站,南京关键词优化软件,wordpress 4.9.7 中文,怎么看网站是谁家做的代码随想录算法训练营第四十四天| 01背包问题 二维、01背包问题 一维、416. 分割等和子集 01背包问题 二维01背包问题 一维416. 分割等和子集 第三个没思路。 01背包问题 二维 文章链接 思路:dp[i][j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包…

代码随想录算法训练营第四十四天| 01背包问题 二维、01背包问题 一维、416. 分割等和子集

  • 01背包问题 二维
  • 01背包问题 一维
  • 416. 分割等和子集

第三个没思路。

01背包问题 二维

文章链接

思路:dp[i][j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。
不放物品i:由dp[i - 1][j]推出,即背包容量为j,里面不放物品i的最大价值,此时dp[i][j]就是dp[i - 1][j]。(其实就是当物品i的重量大于背包j的重量时,物品i无法放进背包中,所以背包内的价值依然和前面相同。)
放物品i:由dp[i - 1][j - weight[i]]推出,dp[i - 1][j - weight[i]] 为背包容量为j - weight[i]的时候不放物品i的最大价值,那么dp[i - 1][j - weight[i]] + value[i] (物品i的价值),就是背包放物品i得到的最大价值
所以递归公式: dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);

代码

void test_2_wei_bag_problem1() {vector<int> weight = {1, 3, 4};vector<int> value = {15, 20, 30};int bagweight = 4;// 二维数组vector<vector<int>> dp(weight.size(), vector<int>(bagweight + 1, 0));// 初始化for (int j = weight[0]; j <= bagweight; j++) {dp[0][j] = value[0];}// weight数组的大小 就是物品个数for(int i = 1; i < weight.size(); i++) { // 遍历物品for(int j = 0; j <= bagweight; j++) { // 遍历背包容量if (j < weight[i]) dp[i][j] = dp[i - 1][j];else dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);}}cout << dp[weight.size() - 1][bagweight] << endl;
}int main() {test_2_wei_bag_problem1();
}

01背包问题 一维

文章链接

思路:用一维来解决背包问题要注意,体积应该从大到小递减,如果从小到大递增遍历,会重复加入物品。应该先遍历物品,然后遍历体积,不能颠倒。颠倒会导致物品只会添加一次。

代码

void test_1_wei_bag_problem() {vector<int> weight = {1, 3, 4};vector<int> value = {15, 20, 30};int bagWeight = 4;// 初始化vector<int> dp(bagWeight + 1, 0);for(int i = 0; i < weight.size(); i++) { // 遍历物品for(int j = bagWeight; j >= weight[i]; j--) { // 遍历背包容量dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);}}cout << dp[bagWeight] << endl;
}int main() {test_1_wei_bag_problem();
}

416. 分割等和子集

题目链接:416. 分割等和子集
文章链接
状态:没思路,不知道怎么转化为背包问题。

思路:体积从sum / 2开始递减。

代码

class Solution {
public:bool canPartition(vector<int>& nums) {int sum = 0;vector<int> dp(10001,0);for (int i = 0; i < nums.size(); i++)sum += nums[i];int target = sum / 2;if (sum % 2 == 1) return false;for (int i = 0; i < nums.size();i++)for (int j = target; j >= nums[i]; j--){dp[j] = max(dp[j], dp[j - nums[i]] + nums[i]);}if (dp[target] == target) return true;else return false;}
};
http://www.dtcms.com/wzjs/396972.html

相关文章:

  • 网页设计制作成品seo网站外链平台
  • 可做分析图的地图网站百度搜索
  • 移民网站建设廊坊seo建站
  • javaweb做网站的流程2020年度关键词有哪些
  • 网站关键词提交信息流优化师是干什么的
  • 怎样建立自己网站视频网站爱站网长尾词挖掘
  • 上海做网站的公司排名我的百度账号
  • 自己做网站要花钱吗灰色产业推广引流渠道
  • 常州集团网站建设百度关键词搜索查询
  • 自己的公众号怎么做的欧美seo查询
  • 有网址 有空间怎么做网站2019年 2022疫情爆发
  • 建设网站后需要什么知识google seo整站优化
  • 惠州营销型网站建设南宁seo外包平台
  • 找建站公司做网站注意事项网络营销课程ppt
  • 网站html5自适应屏幕长春网站关键词排名
  • 专业营销型网站定制做微商怎么找客源加人
  • 陕西网站建设咨询百度网站首页提交入口
  • 个人网站素材图片seo网站建设优化什么意思
  • 哪家网站做公司最好网站seo文章该怎么写
  • wordpress文章复制粘贴图片保存商丘seo博客
  • 体育视频网站建设长沙本地推广平台
  • 雨默合肥做网站推广seo 页面链接优化
  • 学做网站php西昌seo快速排名
  • 怎样做网站全屏代码优云优客百度推广效果怎么样
  • 网站开发 自学搜索引擎营销名词解释
  • 网站由哪儿三部分组成seo优化推广专员招聘
  • 建站用什么工具提高工作效率8个方法
  • 上海建筑网站seo sem是指什么意思
  • 购物帮 做特惠的导购网站推广有什么好方法
  • 美女色情做视频网站有哪些搜索百度网址网页