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

网站建设详细报价百度做广告多少钱一天

网站建设详细报价,百度做广告多少钱一天,做神秘顾客哪个网站好,软件app大全免费代码随想录算法训练营第四十四天| 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/70289.html

相关文章:

  • 博客类网站怎么做百度热搜榜排名今日头条
  • 可以在哪些网站做翻译兼职seo站长博客
  • 网站字体 font-family进入百度搜索网站
  • 如何找网站推广windows7优化大师下载
  • 建立一个网站需要什么技术培训机构哪家最好
  • 海淀区网站建设公司全媒体广告投放平台
  • 网页制作模板田田田田田田田田田田田田田田选择宁波seo优化公司
  • 做淘宝客网站教程域名注册服务商
  • 烟台城乡建设局官方信息网站武汉久都seo
  • esc怎么做网站网络营销推广seo
  • 通州的网站建设策划推广活动方案
  • 网站上传面板网络营销常用的方法有哪些
  • 合肥网站建设方案全国培训机构排名前十
  • 专业建设网站服务品牌服务推广
  • 花蝴蝶 高清直播win10必做的优化
  • 苏州工业园区做政务网站的公司北京seo招聘信息
  • 网页在线制作网站搜索引擎竞价广告
  • 怎么做打码网站百度关键词网站排名优化软件
  • 大型公司网络搭建实例黄山seo公司
  • 宝安石岩网站建设腾讯企点是干嘛的
  • 长沙专业网站建设公司哪家好市场营销的策划方案
  • 望野拼音南宁百度seo公司
  • 网站开发需要掌握技术山西网站seo
  • 南京做网站联系南京乐识合肥seo排名扣费
  • 山东德州做网站网站建设公司网站
  • 衡水做wap网站价格黄石seo诊断
  • 搭建网站论坛自己建个网站要多少钱
  • 黄石网站建设哪家好深圳营销型网站建设
  • ASP网站建设实训报告总结建网站的流程
  • 国内网站 备案网店推广运营策略