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

代码随想录算法训练营Day35 | 01背包问题 | 416. 分割等和子集

今日任务

01背包问题

  • 题目链接: https://kamacoder.com/problempage.php?pid=1046
  • 题目描述
    在这里插入图片描述

Code

#include <iostream>
#include <vector>
#include <functional>
#include <algorithm>using namespace std;int main(void){int n, sz;cin >> n >> sz;vector<int> spaces(n);vector<int> values(n);for(int i = 0; i < n; i++){cin >> spaces[i];}for(int i = 0; i < n; i++){cin >> values[i];}// dp[i][c] = max(dp[i - 1][c], dp[i - 1][c - spaces[i]] + values[i]);vector<int> dp(sz + 1);for(int i = 0; i < n; i++){int x = spaces[i], v = values[i];for(int c = sz; c >= x; c--){dp[c] = max(dp[c], dp[c - x] + v);}}cout << dp[sz] << "\n";return 0;
}

416. 分割等和子集

  • 题目链接: https://leetcode.cn/problems/partition-equal-subset-sum/
  • 题目描述
    在这里插入图片描述

Code

class Solution {
public:bool canPartition(vector<int>& nums) {int sum = reduce(nums.begin(), nums.end(), 0);if(sum % 2){return false;}int t = sum / 2;int n = nums.size();// vector<vector<int>> memo(n, vector<int>(t + 1, -1));// function<bool(int, int)> dfs = [&](int i, int c)->bool{//     if(i < 0){//         return c == 0;//     }//     int &res = memo[i][c];//     if(res != -1){//         return res;//     }//     // if(c < nums[i]){//     //     return res = dfs(i - 1, c);//     // }//     // return res = dfs(i - 1, c) || dfs(i - 1, c - nums[i]);//     return res = c >= nums[i] && dfs(i - 1, c - nums[i]) || dfs(i - 1, c);// };// return dfs(n - 1, t);// vector<vector<bool>> dp(n + 1, vector<bool>(t + 1));// dp[0][0] = true;// for(int i = 0; i < n; i++){//     int x = nums[i];//     for(int c = 0; c <= t; c++){//         dp[i + 1][c] = c >= x && dp[i][c - x] || dp[i][c];//     }// }// return dp[n][t];vector<bool> dp(t + 1);dp[0] = true;int pre = 0;for(int x : nums){pre = min(pre + x, t);for(int c = pre; c >= x; c--){dp[c] = dp[c] || dp[c - x];}}return dp[t];}
};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • FFMPEG 序列帧图片合成视频
  • Summer School science communication project--Laptop Selection Suggestion
  • 《学会 SpringMVC 系列 · 参数解析器 ArgumentResolvers》
  • Java学习笔记(二十):反射、动态代理、日志、类加载器、xml、单元测试Junit、注解
  • EasyX自学笔记3(割草游戏1)
  • Linux字符设备驱动开发
  • SpringBoot3无法注入RocketMQTemplate Bean
  • TabLayout使用以及自定义tab标签
  • MySQL和Redis的数据一致性
  • UE C++ FUdpSender和FUdpReveiver
  • 需要全面学习LangChain?您看这篇就够了
  • .net SqlSugarHelper
  • C# 判断电脑是否联网
  • 保研考研机试攻略:第二章——入门经典(1)
  • Android笔试面试题AI答之Kotlin(4)
  • 08.Android之View事件问题
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • CSS 三角实现
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • ESLint简单操作
  • gops —— Go 程序诊断分析工具
  • JavaScript HTML DOM
  • JavaScript函数式编程(一)
  • JavaScript设计模式之工厂模式
  • java概述
  • leetcode388. Longest Absolute File Path
  • mongodb--安装和初步使用教程
  • October CMS - 快速入门 9 Images And Galleries
  • React中的“虫洞”——Context
  • Redis在Web项目中的应用与实践
  • ucore操作系统实验笔记 - 重新理解中断
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 从零搭建Koa2 Server
  • 翻译:Hystrix - How To Use
  • 聊一聊前端的监控
  • 如何学习JavaEE,项目又该如何做?
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 我的zsh配置, 2019最新方案
  • 优化 Vue 项目编译文件大小
  • 原生Ajax
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​LeetCode解法汇总518. 零钱兑换 II
  • # Redis 入门到精通(七)-- redis 删除策略
  • (2)STL算法之元素计数
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (独孤九剑)--文件系统
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (算法)Travel Information Center
  • (学习总结16)C++模版2
  • (原創) 物件導向與老子思想 (OO)
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)创业的注意事项
  • (转)大型网站的系统架构