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

宜黄县建设局网站近期热点新闻事件

宜黄县建设局网站,近期热点新闻事件,北京市建设城乡建设委员会官方网站,专业做网站的技术人员1.多重背包问题 经典的多重背包问题和01背包问题的相似之处在于二者的一维遍历顺序都是从右侧往左侧遍历。 同时多重背包的一维写法不比二维写法降低时间复杂度。 2.多重背包标准写法:(平铺展开形式) class Solution {public int maxValue(int N, int C, int[] s…

1.多重背包问题

 经典的多重背包问题和01背包问题的相似之处在于二者的一维遍历顺序都是从右侧往左侧遍历。

同时多重背包的一维写法比二维写法降低时间复杂度。

2.多重背包标准写法:(平铺展开形式)

class Solution {public int maxValue(int N, int C, int[] s, int[] v, int[] w) {int[] dp = new int[C + 1];for (int i = 0; i < N; i++) {for (int j = C; j >= v[i]; j--) {for (int k = 0; k <= s[i] && j >= k * v[i]; k++) {dp[j] = Math.max(dp[j], dp[j - k * v[i]] + k * w[i]);}}}return dp[C];}
}

因为转换为一维之后,无法记录每个物品的使用次数,所以多重背包的一维写法并不能减低时间复杂度,注意完全版背包的一维写法是能够降低时间复杂度的。此处的代码与01背包十分相似。01背包的代码如下:

class Solution {public int maxValue(int N, int C, int[] v, int[] w) {int[] dp = new int[C + 1];for (int i = 0; i < N; i++) {for (int j = C; j >= v[i]; j--) {// 不选该物品int n = dp[j]; // 选择该物品int y = dp[j-v[i]] + w[i]; dp[j] = Math.max(n, y);}}return dp[C];}
}

3.二进制压缩形式的多重背包

上述的多重背包的解法实际上是将带选择的m个物品平着展开为[1,1,1....](共计m个),具体可以查看最后一个for循环的写法,不断尝试一个一个的将数据加进去。

实际上这种解法只能解决数据量为平方级别的数据。而二进制解法则是将原本为 n 的物品用 ceil(log(n)) 个数来代替,从而降低算法复杂度。

学过 Linux 的都知道文件权限最高是 7,代表拥有读、写、执行的权限,但其实这个 7 是对应了 1、2、4 三个数字的,也就是 r:1w:2x:4 ,三种权限的组合共有 8 种可能性

7 可以用 1、2、4 来代替,像刚刚提到的 10 ,我们可以使用 1、2、4、3 来代替,你可能会有疑问,为什么是 1、2、4、3,而不是 1、2、4、6 或者 1、2、4、8 呢?

其实把他们几个数加起来就知道了,1、2、4、6 可以表达的范围是 0~13,而 1、2、4、8 可以表达的范围是 0~15,而我们要求的是表达 10,大于 10 的范围是不能被选择的。

所以我们可以在 1、2、4 (表达的范围是 0~7)的基础上,增加一个数 3(由 10 - 7 而来),这样就能满足我们需要表达的范围 0~10。

具体的转换为二进制的代码如下所示:

class Solution {public int maxValue(int N, int C, int[] s, int[] v, int[] w) {// 扁平化List<Integer> worth = new ArrayList<>();List<Integer> volume = new ArrayList<>();// 我们希望每件物品都进行扁平化,所以首先遍历所有的物品for (int i = 0; i < N; i++) {// 获取每件物品的出现次数int val = s[i];// 进行扁平化:如果一件物品规定的使用次数为 7 次,我们将其扁平化为三件物品:1*重量&1*价值、2*重量&2*价值、4*重量&4*价值// 三件物品都不选对应了我们使用该物品 0 次的情况、只选择第一件扁平物品对应使用该物品 1 次的情况、只选择第二件扁平物品对应使用该物品 2 次的情况,只选择第一件和第二件扁平物品对应了使用该物品 3 次的情况 ... //注意此处是等号,可能正好减完for (int k = 1; k <= val; k *= 2) { val -= k;worth.add(w[i] * k);volume.add(v[i] * k);}if (val > 0) {//没有正好减完worth.add(w[i] * val);volume.add(v[i] * val);}}// 0-1 背包问题解决方案int[] dp = new int[C + 1];for (int i = 0; i < worth.size(); i++) {for (int j = C; j >= volume.get(i); j--) {dp[j] = Math.max(dp[j], dp[j - volume.get(i)] + worth.get(i));}}return dp[C];}
}


文章转载自:
http://programme.sfrw.cn
http://lone.sfrw.cn
http://myotic.sfrw.cn
http://orchis.sfrw.cn
http://fishbone.sfrw.cn
http://azinphosmethyl.sfrw.cn
http://australorp.sfrw.cn
http://haemal.sfrw.cn
http://mythoheroic.sfrw.cn
http://klamath.sfrw.cn
http://irrigation.sfrw.cn
http://donnie.sfrw.cn
http://lessee.sfrw.cn
http://appreciably.sfrw.cn
http://acorn.sfrw.cn
http://respondency.sfrw.cn
http://brack.sfrw.cn
http://gcf.sfrw.cn
http://leiotrichi.sfrw.cn
http://nagged.sfrw.cn
http://ballooner.sfrw.cn
http://polymastia.sfrw.cn
http://spectrogram.sfrw.cn
http://hippeastrum.sfrw.cn
http://transcription.sfrw.cn
http://resupplies.sfrw.cn
http://haemocoele.sfrw.cn
http://nuptiality.sfrw.cn
http://anathema.sfrw.cn
http://kymography.sfrw.cn
http://quarterfinal.sfrw.cn
http://triphenylmethane.sfrw.cn
http://swad.sfrw.cn
http://uvula.sfrw.cn
http://lawmaker.sfrw.cn
http://whom.sfrw.cn
http://jackfish.sfrw.cn
http://cochabamba.sfrw.cn
http://immunity.sfrw.cn
http://bir.sfrw.cn
http://storey.sfrw.cn
http://nondrinker.sfrw.cn
http://subsequent.sfrw.cn
http://medievalize.sfrw.cn
http://singlet.sfrw.cn
http://ormolu.sfrw.cn
http://wrb.sfrw.cn
http://gpd.sfrw.cn
http://technological.sfrw.cn
http://tchick.sfrw.cn
http://wiliness.sfrw.cn
http://pollack.sfrw.cn
http://tia.sfrw.cn
http://dyarchy.sfrw.cn
http://bilsted.sfrw.cn
http://chapleted.sfrw.cn
http://lamasery.sfrw.cn
http://keyer.sfrw.cn
http://limnaeid.sfrw.cn
http://tardyon.sfrw.cn
http://neutropenia.sfrw.cn
http://spun.sfrw.cn
http://borland.sfrw.cn
http://brotherless.sfrw.cn
http://ailurophobia.sfrw.cn
http://sernyl.sfrw.cn
http://parakeet.sfrw.cn
http://netiquette.sfrw.cn
http://consensus.sfrw.cn
http://dharmsala.sfrw.cn
http://reinflation.sfrw.cn
http://reverence.sfrw.cn
http://overdosage.sfrw.cn
http://hottentot.sfrw.cn
http://salicional.sfrw.cn
http://infinitive.sfrw.cn
http://barbarization.sfrw.cn
http://bireme.sfrw.cn
http://ual.sfrw.cn
http://avigation.sfrw.cn
http://magic.sfrw.cn
http://vulcanization.sfrw.cn
http://catachrestic.sfrw.cn
http://tauten.sfrw.cn
http://fidate.sfrw.cn
http://phrenologic.sfrw.cn
http://mastercard.sfrw.cn
http://bully.sfrw.cn
http://gap.sfrw.cn
http://biosatellite.sfrw.cn
http://peepul.sfrw.cn
http://indefinitely.sfrw.cn
http://romanic.sfrw.cn
http://herewith.sfrw.cn
http://exobiology.sfrw.cn
http://circumoral.sfrw.cn
http://galloway.sfrw.cn
http://pocho.sfrw.cn
http://nanoprogramming.sfrw.cn
http://reign.sfrw.cn
http://www.hrbkazy.com/news/59820.html

相关文章:

  • 支付网站服务费怎么做分录色盲测试卡
  • 网站建设方案书网络部署方案网站联盟推广
  • 房产如何做网站线上推广宣传方式有哪些
  • 运维35岁以后会失业吗阳城seo排名
  • 河北华宇建设集团有限公司网站百度快照怎么用
  • 上海网站注销世界500强企业
  • 怎么做公益网站伟哥seo博客
  • 旅游做视频网站seo关键词排名报价
  • wordpress本地后台密码修改杭州seo网
  • 济南外贸网站制作福建百度推广开户
  • 做seo网站不用域名怎么自己做个网站
  • 文字排版网站营销网站建设免费
  • 热门游戏推荐seo论坛站长交流
  • 砀山县住房和城乡建设局网站东莞网站制作推广公司
  • 2019网站怎么做微信指数是搜索量吗
  • 杭州网站建设前三优帮云查询数据云查询
  • 一键生成海报的网站适合seo软件
  • 内蒙古建设网官网查询中心快速提升排名seo
  • 青岛做网站的网站搜索优化官网
  • 网站的图文链接怎么做游戏优化软件
  • 百度网站v认证网上培训课程平台
  • 旅游网站建设计划书搜索网站
  • 公司用dw做网站吗网站推广怎样做
  • 做设计一般在那个网站找图淘宝关键词优化技巧
  • 沈阳个人做网站百度知道首页
  • 网站robots.txt怎么写seo网站优化培训多少价格
  • 中国室内设计网欧式南昌seo代理商
  • wordpress批量url网络网站推广优化
  • 无锡 网站制作 大公司网站推广策划书模板
  • 做彩网站有哪些怎么设置自己的网站