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

crm系统网址长春seo网站排名

crm系统网址,长春seo网站排名,可以做图片视频的网站,宜都网站建设1. 01 背包(每种物品只能选一次) 思路: 每个物品只能取 0 次或 1 次,求在容量限制内的最大价值。 定义 dp[j] 表示容量 j 时的最大价值。 遍历物品,从后向前遍历容量,防止物品被重复使用。 状态转移方程…

1. 01 背包(每种物品只能选一次)

思路:

  • 每个物品只能取 0 次或 1 次,求在容量限制内的最大价值。

  • 定义 dp[j] 表示容量 j 时的最大价值。

  • 遍历物品,从后向前遍历容量,防止物品被重复使用。

  • 状态转移方程: dp[j] = max(dp[j], dp[j - w[i]] + v[i])

代码模板:

for (int i = 0; i < N; i++) {  // 遍历物品for (int j = V; j >= w[i]; j--) {  // 倒序遍历背包容量dp[j] = Math.max(dp[j], dp[j - w[i]] + v[i]);}
}

示例: 输入:

3 5
2 3
1 2
3 4

计算过程:

  1. 初始化 dp = [0, 0, 0, 0, 0, 0]

  2. 处理第一个物品(重量2,价值3):

    • dp[5] = max(dp[5], dp[3] + 3) = 3

    • dp[4] = max(dp[4], dp[2] + 3) = 3

    • dp[3] = max(dp[3], dp[1] + 3) = 3

    • dp[2] = max(dp[2], dp[0] + 3) = 3

  3. 处理第二个物品(重量1,价值2),依次更新。

  4. 处理第三个物品(重量3,价值4),依次更新。

最终 dp[5] = 5


2. 完全背包(每种物品可以选无限次)

思路:

  • 每个物品可以取无限次。

  • 仍然定义 dp[j],但这次要正序遍历容量。

  • 状态转移方程: dp[j] = max(dp[j], dp[j - w[i]] + v[i])

代码模板:

for (int i = 0; i < N; i++) {  // 遍历物品for (int j = w[i]; j <= V; j++) {  // 正序遍历背包容量dp[j] = Math.max(dp[j], dp[j - w[i]] + v[i]);}
}

示例: 输入:

2 4
1 2
2 4

计算过程:

  1. 初始化 dp = [0, 0, 0, 0, 0]

  2. 处理第一个物品(重量1,价值2):

    • dp[1] = 2, dp[2] = 4, dp[3] = 6, dp[4] = 8

  3. 处理第二个物品(重量2,价值4):

    • dp[2] = 4(不变),dp[3] = 6(不变),dp[4] = 8(不变)

最终 dp[4] = 8


3. 多重背包(每种物品最多选 Si 次)

思路:

  • 直接按照 01 背包 方式处理的时间复杂度较高。

  • 使用 二进制拆分优化,将 s[i] 个物品拆分成若干个 2^k 份,使得 2^0 + 2^1 + ... 覆盖 s[i]

  • 状态转移方程: dp[j] = max(dp[j], dp[j - k * w[i]] + k * v[i])

代码模板(使用二进制优化):

for (int i = 0; i < N; i++) {  // 遍历物品int count = s[i];for (int k = 1; count > 0; k *= 2) {  // 二进制拆分int num = Math.min(k, count);count -= num;int weight = num * w[i];int value = num * v[i];for (int j = V; j >= weight; j--) {  // 01 背包处理dp[j] = Math.max(dp[j], dp[j - weight] + value);}}
}

示例: 输入:

3 10
2 3 3
3 4 2
5 6 2

计算过程(使用二进制优化拆分):

  1. 物品1(重量2,价值3,最多选3次)拆分成 1, 2

    • dp[10] = max(dp[10], dp[8] + 3)

    • dp[8] = max(dp[8], dp[6] + 3)

    • 依次更新 dp[2] = 3, dp[4] = 6, dp[6] = 9

  2. 物品2(重量3,价值4,最多选2次)拆分成 1, 1

    • 依次更新 dp[3] = 4, dp[6] = 8, dp[9] = 12

  3. 物品3(重量5,价值6,最多选2次)拆分成 1, 1

    • dp[5] = 6, dp[10] = 12

最终 dp[10] = 12


总结:

  • 01 背包: 只能选 0 或 1 次,倒序遍历容量。

  • 完全背包: 可选无限次,正序遍历容量。

  • 多重背包: 每种物品最多选 Si 次,二进制拆分优化

http://www.dtcms.com/wzjs/250936.html

相关文章:

  • 武汉免费建站模板谷歌seo优化排名
  • iis5.1怎么发布网站收录优美图片崩了
  • 石龙网站开发网络营销策划的基本原则
  • 长泰建设局网站接app推广
  • 设置网站建设百度网盘下载
  • 视差网站网上广告怎么推广
  • 2015做啥网站能致富网络推广是做什么工作的
  • 哪些网站可以做外链杭州网站优化培训
  • 宁德蕉城住房和城乡建设部网站传播易广告投放平台
  • 最专业 汽车网站建设百度导航下载2022最新版官网
  • 网页制作工具 知乎网站seo入门基础教程
  • 免费自助设计网站网络营销ppt模板
  • 中国门户网站企业网站建设论文
  • 建设银行广州分行网站外贸推广营销公司
  • 免费网站转app网站互联网推广
  • 办网站需要备案吗百度seo培训班
  • 认证网站源码成人就业技术培训机构
  • 网站建设税点百度商业平台
  • 网站建设费摊销几年微商营销
  • 做网站如何挣钱网站关键词优化的步骤和过程
  • 长沙学校网站建设网络营销策划案怎么写
  • 镇江网站公司萝卜建站
  • 怎么查网站做404页面没yahoo搜索引擎
  • 建旅游网站多少钱抖音关键词排名查询
  • 开一个网站_只做同城交易新站整站快速排名
  • 贵阳快速建站模板怎么制作自己的网站网页
  • 如何制作漂亮的微信公众号文章seo排名快速
  • 南通建设招聘信息网站域名年龄对seo的影响
  • django 网站开发案例爱站网挖掘词
  • 夫唯徒弟做外贸服装批发的seo案例 用wp做的网站网站推广怎么推广