摘要: 顾名思义,混合背包就是将前面三种的背包问题(01,完全,多重)混合起来,有的只能取一次,有的能取无限次,有的只能取 k 次。 正解 特解 部分情况下,如小数据,可以转换成多重背包(把完全情况的数量换成足够大,如1e7,就把完全相对变成了多重) 例题 https://www.luogu.com.cn/ 阅读全文
posted @ 2024-06-29 23:39 uanQ 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 多重背包也是 0-1 背包的一个变式。与 0-1 背包的区别在于每种物品有 k 个,而非一个。 朴素 直接把相同的每个物品视作各个单独的物品,没有关联,仅条件相同; 转换后直接用01背包的状态转移方程 注意:在大数据下容易爆空间时间 二进制分组优化 与朴素相比,优化利用二进制原理(任意数可以由多个不 阅读全文
posted @ 2024-06-29 22:52 uanQ 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 完全背包模型与 0-1 背包类似,与 0-1 背包的区别仅在于一个物品可以选取无限次,而非仅能选取一次。 而状态转移方程于01背包区别在于可以直接从[i][j-w[i]]转移 理由是当我们这样转移时,[i][j-w[i]]已经由 [i][j-2*w[i]]更新过,那么 [i][j-w[i]]就是充分 阅读全文
posted @ 2024-06-29 21:52 uanQ 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 01背包是背包dp的基础的重点,重点的基础!!! 题意概要:有 n 个物品和一个容量为 W 的背包,每个物品有重量 w_{i} 和价值 v_{i} 两种属性,要求选若干物品放入背包使背包中物品的总价值最大且背包中物品的总重量不超过背包的容量。 在上述例题中,由于每个物体只有两种可能的状态(取与不取) 阅读全文
posted @ 2024-06-27 17:40 uanQ 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 1.调用的变量没有参数,为空 vscode出现Segmentation fault异常,但是没有问题报错(如上) 先说原因:cout << dp[m]; m没有输入,一个空定义(空指针) 难受啊,有一次cf因为这个bug卡了一晚上,掉大分! 2.一些递归函数没有返回值:return 导致函数死循环调 阅读全文
posted @ 2024-06-27 17:26 uanQ 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 【模板】最长公共子序列 题目描述 给出 \(1,2,\ldots,n\) 的两个排列 \(P_1\) 和 \(P_2\) ,求它们的最长公共子序列。 输入格式 第一行是一个数 \(n\)。 接下来两行,每行为 \(n\) 个数,为自然数 \(1,2,\ldots,n\) 的一个排列。 输出格式 一个 阅读全文
posted @ 2024-06-26 14:04 uanQ 阅读(5) 评论(0) 推荐(0) 编辑