题目链接

传说中楼教主的做男人不易八题之一,这题多重背包应该算最简单的一道了

我AC的时候Users (Solved) 有3945了。

关于背包问题可以看 dd_engi 大牛的01背包、完全背包和多重背包三个问题的解法就会做了

本题就是多重背包

java实现如下:

import java.util.Arrays;

import java.util.Scanner;

public class Main {

static int n, m, re, count[], val[], dp[];

//01背包

static void f_01(int cost, int val) {

for (int i = m; i >= cost; i--)

dp[i] = Math.max(dp[i], dp[i - cost] + val);

}

//完全背包

static void f_full(int cost, int val) {

for (int i = cost; i <= m; i++)

dp[i] = Math.max(dp[i], dp[i - cost] + val);

}

//多重背包

static void f_mul(int cost, int val, int count) {

if (count \* cost >= m) {

f_full(cost, val);

} else {

int k = 1;

while (k < count) {

count -= k;

f_01(k \* cost, k \* val);

k \*= 2;

}

f_01(count \* cost, count * val);

}

}

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

for (;;) {

n = sc.nextInt();

m = sc.nextInt();

if (m + n == 0)

return;

re = 0;

dp = new int[m + 1];

//除dp[0]初始化为0外,其他初始化为-∞

Arrays.fill(dp, 1, dp.length, Integer.MIN_VALUE);

val = new int[n + 1];

count = new int[n + 1];

for (int i = 1; i <= n; i++)

val[i] = sc.nextInt();

for (int i = 1; i <= n; i++)

count[i] = sc.nextInt();

for (int i = 1; i <= n; i++)

f_mul(val[i], val[i], count[i]);

for (int i = 1; i <= m; i++)

if (dp[i] == i)

re++;

System.out.println(re);

}

}

}

多重背包java版本实现_楼天城男人八题——POJ1742 Coins相关推荐

  1. 多重背包java版本实现_多重背包1(java)

    有 NN 种物品和一个容量是 VV 的背包. 第 ii 种物品最多有 sisi 件,每件体积是 vivi,价值是 wiwi. 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大. ...

  2. 【楼天城男人八题】【树分治|Treap+启发式合并】POJ1741 Tree

    题面在这里 待我先膜拜一下楼教主-- 首先这题是很明显的树分治 想说点什么却发现已经没什么好说了 然后我们来看另一种解法:平衡树乱搞 这里用的是Treap实现 对于每个节点,用Treap记录该子树每个 ...

  3. 楼天城男人八题之博弈

    woc绝世好题! 大佬博客https://www.cnblogs.com/dramstadt/p/3439725.html #include<cstdio> #include<cst ...

  4. nyoj-137 取石子(三) (博弈,楼教主真男人八题)

    取石子(三) 时间限制: 1000 ms  |  内存限制: 1000 KB 难度: 6 描述 小王喜欢与同事玩一些小游戏,今天他们选择了玩取石子. 游戏规则如下:共有N堆石子,已知每堆中石子的数量, ...

  5. Tiled有java版本吗_【Cocos2d-X开发学习笔记】开发工具之Tiled地图编辑器的使用

    Cocos2D-X支持Tiled地图编辑器生成的地图数据文件.Tiled地图编辑器是一个以广泛使用为目标的地图编辑html 器,它使用简单而且能够轻松地在不一样的引擎中使用.目前最新版本使用Qt框架进 ...

  6. Java版本多用户B2B2C商城源码-(八)消息总线(Spring Cloud Bus)

    Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来.它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控.本文要讲述的是用Spring Cloud Bus实现通知微服务 ...

  7. 动态规划 背包问题小结 0-1背包(采药 九度第101题) 完全背包(Piggy-Bank POJ 1384) 多重背包(珍惜现在,感恩生活 九度第103题)

    本小结介绍0-1背包.完全背包以及多重背包问题 记忆要点: 0-1背包:二维数组情况下,顺序遍历体积或者倒序均可以                降维情况下需倒序遍历体积 完全背包:数组降维+顺序遍历 ...

  8. 楼教主男人八题(第一题)

    楼天城,1986 年出生,高中毕业于杭州十四中. 2004 年保送进清华大学计算机系.2008年进入姚期智院士领导的清华大学理论计算机中心攻读博士. 2017年初,创办小马智行(pony.ai).楼天 ...

  9. appium java版本错误_升级Appium最新java-client 6.0.0包后-问题来了...

    前段时间由于想把自己开源的测试平台LuckyFrame集成移动端的自动化测试,所以选择了Appium,然后把Appium的JAVA客户端更新到java-client 6.0.0-BETA2,发现其中有 ...

最新文章

  1. Image Generation
  2. 关于ping telnet
  3. python目录在哪里_python安装后的目录在哪里
  4. python列表--查找集合中重复元素的个数
  5. linux下nginx+python+fastcgi部署总结(web.py版)
  6. 受控组件和不受控组件的区别
  7. 爬虫实战:CentOS安装JDK,部署Java程序,利用screen使其保持在前台运行
  8. Tensorflow Serving部署tensorflow、keras模型详解
  9. 流水灯c语言实验报告心得,嵌入式流水灯实验心得体会.docx
  10. python 文件按行读写
  11. 树莓派 树莓派 编c++_树莓派6年
  12. Android 音视频深入 十三 OpenSL ES 制作音乐播放器,能暂停和调整音量(附源码下载)...
  13. CAD2010 64 位 安装后打开就卡死 解决方案
  14. CAD文件查看器Acme CAD Converter V 8.10.2.1536【轻松查看CAD】
  15. 鼎利软件测试终端刷机,你怎样把鼎利路测设备调试好?
  16. ASP.NET网站制作
  17. 基于决策树的交通拥堵成因分析
  18. 书签同步工具android,「效率工具推荐」跨平台在线云书签管理工具
  19. PDF生成插件--TcPDF
  20. 计算机科学在本质,人类大脑的本质竟然是计算机?

热门文章

  1. python多行注释符号快捷键_python多行注释快捷键
  2. RabbitMQ的消息模型
  3. esp32 md5加密算法的使用Arduino/esp-idf
  4. python scipy安装失败的解决方法
  5. 有关天线与波的极化方向的小结:线极化,圆极化,椭圆极化
  6. ISO 16750.5-2010道路车辆电子电气部件的环境试验 第五部分
  7. Hadoop2.x高可用架构
  8. org.springframework.core.type.AnnotationMetadata.introspect(Ljava/lang/Class;)Lorg/springframework/c
  9. 全局路由守卫,独享路由守卫,组件内路由守卫
  10. Myth源码解析系列之五- 服务启动源码解析