题目来源:牛客网

众所周知计算机代码底层计算都是0和1的计算,牛牛知道这点之后就想使用0和1创造一个新世界!牛牛现在手里有n个0和m个1,给出牛牛可以创造的x种物品,每种物品都由一个01串表示。牛牛想知道当前手中的0和1可以最多创造出多少种物品。

输入描述:

输入数据包括x+1行:
第一行包括三个整数x(2 ≤ x ≤ 20),n(0 ≤ n ≤ 500),m(0 ≤ m ≤ 500),以空格分隔
接下来的x行,每行一个01串item[i],表示第i个物品。每个物品的长度length(1 ≤ length ≤ 50)

输出描述:

输出一个整数,表示牛牛最多能创造多少种物品

输入例子:
3 3 1
1
00
100

输出例子:
2

Java实现:

import java.util.Scanner;public class Main
{public static void main(String[] args){Scanner scanner = new Scanner(System.in);int num_item = scanner.nextInt();int num_0 = scanner.nextInt();int num_1 = scanner.nextInt();int count = 0;int[] array_0 = new int[21];int[] array_1 = new int[21];for (int i = 1 ; i <= num_item; i++){char[] array = scanner.next().toCharArray();for (char anArray : array){if (anArray == '0')array_0[i]++;elsearray_1[i]++;}}scanner.close();//二维动态规划,背包问题int[][] dp = new int[501][501];for (int i = 1 ; i <= num_item; i++){for (int j = num_0 ; j >= array_0[i] ; j--){for (int k = num_1 ; k >= array_1[i] ; k--){dp[j][k] = Math.max(dp[j][k], dp[j-array_0[i]][k-array_1[i]]+1);// 输出每一步的结果//System.out.println("dp["+j+"]["+k+"] = Math.max(dp["+j+"]["+k+"], dp["+j+"-array_0["+i+"]]["+k+"-array_1["+i+"]]+1);");}}}System.out.print(dp[num_0][num_1]);}
}

  

转载于:https://www.cnblogs.com/shixiangwan/p/6730547.html

算法题之创造新世界(动态规划)相关推荐

  1. 面试必备算法题集之「动态规划」Ⅰ

    题目来源:LeetCode-腾讯-动态规划 题库链接:LeetCode传送门 前言 这份题集来源于 LeetCode-腾讯-动态规划 ,怀着想学习动态规划的心(带着害怕面试被问到的恐惧 )做了第一份D ...

  2. 力扣算法题(11)动态规划

    70-Climbing Stairs (fibonacci数的矩阵计算) //假设你正在爬楼梯,有n阶,每次可以爬1或2阶,有多少种方法可以爬到楼顶. class solution70{int res ...

  3. 一道看完答案你会觉得很沙雕的「动态规划算法题」

    这道算法题其实并不难,如果你把文章从头到尾看完的话基本上能看懂,但如果你看到最后的话大概率会说一句:这是什么沙雕题目?! 题目来源于 LeetCode 第 877 号问题:石子游戏. 为了更好理解,我 ...

  4. 【常见笔试面试算法题12】动态规划算法案例分析

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 文章目录 1.暴力搜索方法 2.记忆搜索方法 3.动态规划方法 4. ...

  5. 剪绳子 算法_[校招-算法题]动态规划

    动态规划(Dynamic Programming)是面试中非常常见的一种算法,可以解决很多复杂问题. 核心算法: 定义状态:dp[i],一个数组,具体几维根据问题定. 状态转移方程:dp[i] = b ...

  6. 面试必备:高频算法题汇总「图文解析 + 教学视频 + 范例代码」之 字符串处理+动态规划 合集!

    Attention 秋招接近尾声,我总结了 牛客.WanAndroid 上,有关笔试面经的帖子中出现的算法题,结合往年考题写了这一系列文章,所有文章均与 LeetCode 进行核对.测试.欢迎食用 本 ...

  7. [编程题] 创造新世界

    题目来源:牛客网 [编程题] 创造新世界 众所周知计算机代码底层计算都是0和1的计算,牛牛知道这点之后就想使用0和1创造一个新世界!牛牛现在手里有n个0和m个1,给出牛牛可以创造的x种物品,每种物品都 ...

  8. 算法 64式 8、动态规划算法整理_第1部分_1到15题

    1 算法思想 动态规划 1.1含义 把问题分解成多阶段或多个子问题,顺序求解各个子问题,最后一个子问题就是初始问题的解. 概念 阶段: 问题分成的顺序的几个环节.例如最长递增子序列中每个字符就是一个阶 ...

  9. 常考面试算法题类型总结(来自知乎)

    作者:牛客网 链接:https://www.zhihu.com/question/24964987/answer/200681301 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

最新文章

  1. MATLAB AWGN信道 M-ary PSK 误码性能
  2. 50万数据生成6位数不重复字符串_JAVA技术分享:单号的生成
  3. 《幽灵行者》:近期最酷炫的赛博朋克游戏之一
  4. python回车换行怎么不行_使用Python编写换行符时避免写入回车'\r'
  5. 田永强:优秀的JavaScript模块是怎样炼成的
  6. HDFS文件权限不足导致Sqoop执行失败
  7. mysql 设置 0、1 用什么数据类型_什么是MySQL数据库?看这一篇干货文章就够了!...
  8. 【BABY夜谈大数据】基于内容的推荐
  9. linux下smtp服务器搭建
  10. 程序设计语言的基本概念
  11. KVM虚拟化技术(理论理解以及虚拟化平台搭建步骤)
  12. vc编程的ime输入法菜单开发
  13. 扫雷游戏(可展开,可标记)C语言实现
  14. Exchange Server 2013 VS 2016
  15. 134. 加油站(JS实现)
  16. torch.manual_seed()及其作用
  17. WebSocket+SockJs+STMOP
  18. P2550数组彩票摇奖
  19. [2019.3.17]BZOJ1109 [POI2007]堆积木Klo
  20. 开放式式商业模式_开放式办公室最符合行政人员而不是公司的最大利益

热门文章

  1. 镜头选型——景深计算
  2. 蓝桥杯单片机——数码管的动态显示(4)
  3. 05——驾校科目一考试系统——验证账号密码
  4. disabled与tap(input的disabled='disabled'时tap事件任可触发)
  5. C++ 将当前系统时间转换成标准格式的时间和时间戳
  6. THz:通信系统的研究现状与应用展望
  7. FFmpeg入门详解--音视频原理及应用:梅会东:清华大学出版社
  8. hover与overflow的配合使用
  9. js 微任务 宏任务的执行顺序解释
  10. 操作系统------虚拟存储器 请求分页存储管理方式