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

建设网站 证件如何制作软件程序

建设网站 证件,如何制作软件程序,做网站业务员提成几个点,有没有做网页的网站问题描述: 使用穷举法解决0/1背包问题。问题描述:给定n个重量为{w1, w2, … ,wn}、价值为{v1, v2, … ,vn} 的物品和一个容量为C的背包,求这些物品中的一个最有价值的子集,且要能够装到背包中。 穷举法:每件物品装还是…

问题描述:

使用穷举法解决0/1背包问题。问题描述:给定n个重量为{w1, w2, … ,wn}、价值为{v1, v2, … ,vn}

 的物品和一个容量为C的背包,求这些物品中的一个最有价值的子集,且要能够装到背包中。

穷举法:每件物品装还是不装有两种选择,使用0-表示不装,1表示装,n件物品就有2^n种,穷举2^n种,找到符合符合weight背包容量的且为价值最大的方式。

public class Main01 {//穷举法public void pack01(int weight,int[] wt,int[] val){int n = wt.length;int count= (int) Math.pow(2,n);int maxVal = 0;//枚举32种情况,并且记录符合weight重量背包的最大价值for (int i = 0; i < count; i++) {String res = String.format("%5s",Integer.toBinaryString(i)).replace(' ','0');System.out.print(res+"  ");int sumVal = 0;int sumWeight=0;for (int j = 0; j < n; j++) {//为1时表示装该物品 0表示不准装if (res.charAt(j)=='1') {sumVal += val[j];sumWeight += wt[j];}if (sumWeight<=weight){maxVal = Math.max(sumVal,maxVal);}}System.out.println("价值:"+sumVal+"重量:"+sumWeight);}//打印最大价值下对应的背包实际重量和所装物品的状态for (int i = 0; i<count; i++) {String res = String.format("%5s",Integer.toBinaryString(i)).replace(' ','0');int sumVal = 0;int sumWeight=0;for (int j = 0; j < n; j++) {if (res.charAt(j)=='1') {sumVal += val[j];sumWeight += wt[j];}}if (sumVal==maxVal&&sumWeight<=weight){System.out.println("当背包重量为"+weight+"时:最大价值:"+sumVal+"  总重量: "+sumWeight+"  方式:"+res);break;}}}public static void main(String[] args) {Main01 main01 = new Main01();int[] wt = {1, 2, 1, 12, 4};int[] val = {1, 2, 2, 4, 10};main01.pack01(15, wt, val);}
}

 输出结果:

 二维dp数组:

dp[i][w]数组含义:对于前i个物品,当前背包容量为w时,可装下的最大值是dp[i][w]。

dp[i-1][w-wt[i-1]]+val[i-1]:装物品i的价值

dp[i-1][w]:不装物品i的价值

因此dp[i][w]取装物品 i dp[i-1][w-wt[i-1]]+val[i-1]  和  不装物品i dp[i-1][w] 的最大值

public class Main01 {public static void main(String[] args) {int[] wt = {1, 2, 1, 12, 4};int[] val = {1, 2, 2, 4, 10};int res = pack01(15,wt,val);System.out.println("最大价值:"+res);}public static int pack01(int weight,int[] wt,int[] val){int n = wt.length;//dp[i][w]数组含义:对于前i个物品,当前背包容量为w时,可装下的最大值是dp[i][w]int[][] dp = new int[n+1][weight+1];for (int i = 1; i <= n; i++) {for (int w = 1; w <= weight; w++) {if (wt[i-1]>w){//不能装入背包dp[i][w] = dp[i-1][w];}else {//择优装入背包dp[i][w] = Math.max(dp[i-1][w-wt[i-1]]+val[i-1],dp[i-1][w]);}}}//打印dp表for (int i = 0; i <=n ; i++) {for (int j = 0; j <=weight ; j++) {if (j<weight){System.out.print(dp[i][j]+",");}else {System.out.print(dp[i][j]);}}System.out.println();}return dp[n][weight];}
}

输出结果:

http://www.yayakq.cn/news/739175/

相关文章:

  • 台州建网站网站建设服务商是什么
  • 如何发布网站西安成品网站建设
  • 电脑哪里做ppt下载网站WordPress多站点同步设置
  • 基金会网站建设义乌网站建设软件开发
  • 企业的网站特点江北seo
  • 网站建设电销话术百度网盘app官方下载
  • 专业的网站建设托管惠州电商网站建设
  • wordpress安装路径和站点地址的设置seo网站优化报价
  • 怎样用jsp做网站登录凡科网站怎么修改昨天做的网站
  • 一见钟情 网站最好网站建设制作是那个
  • 学做沪江网站要多久怎样做浏览的网站不被发现
  • 无锡网站建设工作室产品开发怎么写
  • 苏州专业高端网站建设公司哪家好wordpress快速网店主题
  • 青岛行业网站建设电话南宁seo企业优化
  • 网站seo策划网站常见问题
  • wap网站发布找外贸客户的网站
  • 做最好言情网站自由人网站开发
  • php公司网站系统销售网站需要备案么
  • 网站设计主题选择无锡市政务服务网站建设项目
  • 上海做网站培训班网站域名到期怎么回事
  • 建设网站政策风险网站微信二维码悬浮
  • 网站 商城 app 建设越南语网站建设
  • 新手学做网站这本书网站推广计划渠道
  • 网站建设年度计划最新新闻事件今天国内消息
  • 网站备案 公司名称关联性成都网站建设及推广
  • 网站建设的组织机构怎么用ps制作个人网站模板下载
  • 建个免费的销售网站好天地做网站
  • 潍坊网站建设 58玫琳凯网站建设方案
  • 搜索的网站后大拇指分享数量不见了怎么样创建一个网站
  • 网站开发费入什么科目辽宁自适应网站建设公司