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

网站建设分享装饰工程 技术支持 东莞网站建设

网站建设分享,装饰工程 技术支持 东莞网站建设,媒体发稿费用,做网站代理商好赚吗目录 完全背包概述:状态表示:状态转移方程:初始化:填表顺序:返回值:代码呈现:利用滚动数组优化:优化代码呈现: 完全背包概述: 完全包解析:和01,包…

目录

  • 完全背包概述:
  • 状态表示:
  • 状态转移方程:
  • 初始化:
  • 填表顺序:
  • 返回值:
  • 代码呈现:
  • 利用滚动数组优化:
    • 优化代码呈现:

完全背包概述:

完全包解析:和01,包相似只是,每一个物品有任意多个,我们还是借鉴01背包的方法

状态表示:

这里是引用

状态转移方程:

这里是引用在这里插入图片描述

初始化:

这里是引用

填表顺序:

这里是引用

返回值:

这里是引用

代码呈现:

import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();int V = in.nextInt();int[] v = new int[n+1];int[] w = new int[n+1];//构造题目的输入for(int i = 1; i <= n; i++){v[i] = in.nextInt();w[i] = in.nextInt();} int[][] dp1 = new int[n+1][V+1];int[][] dp2 = new int[n+1][V+1];//第一小问:for(int i = 1; i <= n; i++)for(int j = 0; j <= V; j++){dp1[i][j] = dp1[i-1][j];if(j >= v[i]){dp1[i][j] = Math.max(dp1[i][j],dp1[i][j-v[i]] + w[i]);}}System.out.println(dp1[n][V]);//第二小问://初始化:for(int i = 1; i <= V; i++) dp2[0][i] = -1;for(int i = 1; i <= n; i++)for(int j = 0; j <= V; j++){dp2[i][j] = dp2[i-1][j];if(j >= v[i] && dp2[i][j-v[i]] != -1){dp2[i][j] = Math.max(dp2[i][j],dp2[i][j-v[i]] + w[i]);}}System.out.println(dp2[n][V] == -1? 0 : dp2[n][V]);}
}

利用滚动数组优化:

完全背包,更新的时候由于j-v[i]在同一行,想要正确的“三角”(不被覆盖的数据)更新,就要从左往右去填表


所以完全背包和01背包,反着,不需要修改遍历顺序
不清楚01背包优化的:链接: 点击在这里插入图片描述

优化代码呈现:

import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {//优化版本:public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();int V = in.nextInt();int[] v = new int[n+1];int[] w = new int[n+1];//构造题目的输入for(int i = 1; i <= n; i++){v[i] = in.nextInt();w[i] = in.nextInt();}int[] dp1 = new int[V+1];int[] dp2 = new int[V+1];//第一小问:for(int i = 1; i <= n; i++)for(int j = v[i]; j <= V; j++){dp1[j] = Math.max(dp1[j],dp1[j-v[i]] + w[i]);}System.out.println(dp1[V]);//第二小问://初始化:for(int i = 1; i <= V; i++) dp2[i] = -1;for(int i = 1; i <= n; i++)for(int j = v[i]; j <= V; j++){if(dp2[j-v[i]] != -1)dp2[j] = Math.max(dp2[j],dp2[j-v[i]] + w[i]);}System.out.println(dp2[V] == -1? 0 : dp2[V]);}
}
http://www.dtcms.com/a/496840.html

相关文章:

  • 石家庄seo网站排名网站做强制访问控制
  • 广西建设工程质量监督网站做医院的网站 配色怎么选择
  • 论文精读:《Robot Person Following in Uniform Crowd Environment》
  • 网站平台建立广州做网站哪个公司做得好
  • 美工网站做兼职固安建设行政主管部门官方网站
  • 鸿蒙Harmony实战开发教学(No.6)-Search组件基础到进阶篇
  • 免费网站建设下载网站建设与推广培训学校
  • 重庆模板网站多少钱网页设计与制作课程设计报告小结
  • 如何来做网站优化湖南州省郴州
  • 网站建设公司薪资美工怎么做网站效果图
  • 用Lxml高效解析XML格式数据:以天气API为例
  • 哪些动物可以做网站名代做土木工程专业毕业设计网站
  • 门户网站建设情况简介深圳推广公司哪家正规
  • linux——基本操作指令——下
  • 免费的外贸网站推广方法教育类网站 前置审批
  • 广东集团网站建设杭州富阳建设局网站首页
  • 网站建设需要些什么设备wordpress 底部按钮
  • 建设企业网站的模式帮助中心网站源码
  • 9. 数列
  • 建设区服务网站怎么学做电商然后自己创业
  • 公司如何组建网站网站建设旗帜条幅
  • 网站建设的投资预算怎么写关键词seo排名怎么选
  • 兰州网站seo按天计费医疗公司网站建设项目背景
  • linux学习笔记(36)mysql事务详解
  • 【Linux权限机制深入理解】为何没有目录写权限仍能修改文件权限?
  • 网站cms青海网站建设费用
  • Zabbix 监控系统触发器、报警、邮箱方位指南
  • 网站设计三原则推广软文平台
  • 从零学算法3355
  • 北京企业网站怎么建设深圳网站专业建设公司