• 2025-01-07代码随想录训练营第三十七天| 完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ 70. 爬楼梯 (进阶)
    完全背包理论直接的说明就是把01背包的有限次选取变为无限次选取求最大价值相对的遍历方向也可以相互调换因为dp[j]只需要上次的计算结果就行 publicclassCarlcodeAllBag{publicstaticvoidtestCompletePack(){//先遍历物品再遍历背包int[]
  • 2025-01-06【SDOI2017】苹果树
    感觉出息了,从2024暑假开始接触这道题,今天才刚刚会。link题意给出一棵树,每个节点上有\(a_i\)个苹果,价值为\(v_i\),如果一个点取了苹果那么父亲也要取,设取了\(t\)个苹果,取苹果的最大深度为\(h\),那么要求\(t-h\lek\)(\(k\)给定),求最大价值。弱化版问题弱化版:\(t\lek\)
  • 2025-01-0601背包问题 Golang实现
    背包问题的分类:01背包描述:有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。思路分析:问题核心:从给定的
  • 2025-01-0425年开篇之作---动态规划系列<七> 01背包问题
    目录一:背包问题的简介二:01背包问题1.模板题2.LeetCode经典例题一:背包问题的简介背包问题(Knapsackproblem)是⼀种组合优化的NP完全问题。问题可以描述为:给定⼀组物品,每种物品都有⾃⼰的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最⾼。
  • 2025-01-04动态规划<八> 完全背包问题及其余背包问题
    目录例题引入---找到解决问题模版LeetCode经典OJ题1.第一题 2.第二题 3.第三题 其余的一些背包问题1.二维费用的背包问题1.第一题2.第二题2.其余杂题例题引入---找到解决问题模版OJ传送门牛客DP42【模板】完全背包画图分析: 使用动态规划解决(第二问与
  • 2025-01-02完全背包问题
    一、问题描述完全背包问题是一个经典的动态规划问题。其问题描述如下:二、算法思路定义状态我们使用动态规划来解决这个问题。定义一个一维数组dp,其中dp[j]表示背包容量为j时能获得的最大价值。状态转移方程对于每种物品i,我们有两种选择:放或者不放。由于每种物品有无限
  • 2025-01-0201背包问题
    有 
  • 2024-12-30DP优化——树上依赖性背包&P6326 Shopping
    P6326Shopping题意等价于要买一个连通块。首先如果我们能求出一个dp数组:\(f_{i,j}\)表示\(i\)子树内,有\(j\)元,一定要选\(i\),能得到的最大价值。那么\(f_{1,m}\)就是一定选根的答案。然后点分治即可。接下来就是怎么在合理的复杂度内求出dp数组。直接背包显然
  • 2024-12-30[HAOI2008] 硬币购物
    前言手贱点进\(\rm{TJ}\),还好啥都没看懂再次想了一下考试应当怎么考,并且与平时归起来了其实焦虑是正常的,做到自己的最好即可加油!思路你发现这疑似多重背包令\(f_{i,j}\)表示考虑了前\(i\)种硬币,已经有了\(j\)元的可能性考虑转移\[f_{i,j}\getsf_{i
  • 2024-12-29代码随想录——动态规划13.分割等和子集
    思路难点我只想到了:“找一个子集,每个数取或不取求其和,看是否和另一个子集的和相等”但是实际上既然是两个子集相等,那么只要和等于sum/2即可了!取或不取用01背包,但是不知道怎么用。只有确定了如下四点,才能把01背包问题套到本题上来。背包的体积为sum/2背包要放入的商
  • 2024-12-29代码随想录——动态规划01背包
    暴力:每一件物品其实只有两个状态,取或者不取,所以可以使用回溯法搜索出所有的情况,那么时间复杂度就是O(2^n),这里的n表示物品数量。所以暴力的解法是指数级别的时间复杂度。进而才需要动态规划的解法来进行优化!二维dp数组01背包确定dp数组及下标含义dp[i][j]表示前i件物品恰放
  • 2024-12-28DP优化——树上依赖性背包&P6326 Shopping
    P6326Shopping题意等价于要买一个连通块。首先如果我们能求出一个dp数组:\(f_{i,j}\)表示\(i\)子树内,有\(j\)元,一定要选\(i\),能得到的最大价值。那么\(f_{1,m}\)就是一定选根的答案。然后点分治即可。接下来就是怎么在合理的复杂度内求出dp数组。直接背包显然
  • 2024-12-261221考试总结
    前言:这场考试暴露了很多的问题,也值得自己下去好好反思的自省。考试中:每一道题都先看了一遍,然后感觉T1可做于是就开始写。很明显如果一个\(ka\timeskb\)的矩阵合法,那么\(k_1a\timesk_1b(k1\lek)\)的小矩阵也一定是合法的,因此考虑二分答案。考试的时候把\(a,b\)的
  • 2024-12-23【学习笔记】多重背包优化
    basictips多重背包可以看做\(\texttt{01}\)背包和完全背包的结合。例题:P1776宝物筛选这道题完全就是多重背包板子,多重背包就是在\(\texttt{01}\)背包与完全背包两者间取了个折中,对于每个体积\(V_i\),价值\(W_i\)的物品多了一个限制,每种物品有且仅有\(C_i\)个。朴素
  • 2024-12-22PERIODNI
    思路哇,看到这个就直接想到昨天学的经典应用:最大子矩形好吧还是认真推一下完蛋了是计数,我们没救了首先按照高度为优先级,位置为键值建一颗小根笛卡尔树,我们玩下样例找下性质例如题目中给出的图片,我们建成笛卡尔树就长这样其中每个点由\(\{键值,优先级\}\)组
  • 2024-12-22回溯法例题
    例一:0-1背包问题https://ac.nowcoder.com/acm/problem/226514这个题的解空间是子集树,大家可以自己来画一下。算法思想定义问题参数:首先定义了物品的数量n,背包的容量c,以及两个数组w和v分别存储每个物品的重量和价值。初始化变量:初始化了用于记录当前选择的物品总重量sumw
  • 2024-12-210-1背包问题
    0-1背包问题问题描述有\(N\)件物品和一个容量是\(V\)的背包。每件物品只能使用一次。第\(i\)件物品的体积是\(v_i\),价值是\(w_i\)。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式:第一行两个整数\(N\),\(V\)用空格隔开,分
  • 2024-12-20一类特殊背包问题
    题意\(n\)个物品,体积\(v_i\)价值\(w_i\),做01背包,\(n\le10^6,m\le5\times10^4,v_i\le300\)。原题忘了叫啥了。分析发现\(v_i\)非常小,考虑把物品按照体积分类,逐类处理。对于体积为\(i\)的物品,我们肯定要按照价值从大到小取。将这些物品排序做前缀和,设选前\(i\)
  • 2024-12-18洛谷P2240部分背包问题
    2024-12-18-第39篇洛谷贪心算法题单-贪心算法-学习笔记作者(Author):郑龙浩/仟濹(CSND账号名)P2240【深基12.例1】部分背包问题题目描述阿里巴巴走进了装满宝藏的藏宝洞。藏宝洞里面有N
  • 2024-12-17【详解】01背包 | 完全背包(原理+例题)
    一.背包问题背包问题简单来说就是选与不选的问题,其本质就是一种有限制条件的组合问题。给你一个“背包”,这个“背包”的体积是V,给你一堆“物品”,这些“物品”每一个都有价值w和体积v,让你选择一些放入“背包”,得到最大(最小)价值。这里根据放入背包的物品的总体积可以分出三类,一
  • 2024-12-17回溯法——0/1背包问题(背包必须装满)
    publicstaticvoidmain(String[]args){intop[]=newint[n+1]; intx[]=newint[5]; intrw=0; for(inti=1;i<=n;i++) rw+=w[i];//剩余物品重量,初始值为所有物品重量之和 dfss(1,0,rw,0,op); printtt(); } publicst
  • 2024-12-162024/12/16 总结
    2024/12/16总结背包问题(knapsack)背包问题是一类已经被研究的比较透彻的问题,在这道题中你需要考虑背包问题的一个变种.你现在有三个背包,容量分别为
  • 2024-12-162024北京站总结
    2024-12-16今天上午是省选模拟赛,总体来说打的还行,但是还是太菜了,感觉被所有人吊打。T1题意:赛时思路:赛时想了差不多一个小时的贪心,后面发现不会贪,当时以为dp是正解,就推了个dp,可以用\(f_{i,j}\)表示第1个背包选了几个,第2个背包选了几个,然后发现转移方程就是\(f_{i,j}=max(f_
  • 2024-12-140-1背包问题多方法求解
    文章目录问题描述回溯法优先队列式分支限界法动态规划问题描述有一个承重量固定的背包和n个物品,每个物品有各自的重量和价值,每个物品不可分割,需要将物品装入背包中,以达到背包内物品总价值最大的目的,且装入背包的物品总重量不能超过背包的承重量。回溯法确定问题的解
  • 2024-12-13动态规划——01背包问题
    01背包问题是一个经典的动态规划问题,虽然基础,之前做过很多遍,但是长时间不接触算法还是会忘记,故记录一下。问题定义:有 N 件物品和一个容量是V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包