1、问题描述

2、 样例说明

3、思路解析

例如:我们输入3个砝码,分别是1,4,6

当输入第一个砝码(1)时,可以称出重量为:1

再输入第二个砝码(4)时,可以称出的重量为:1,(4 - 1),(4 + 1),4

当前可以称出的重量有:1,3,4,5

再输入第三个砝码(6)时,可以称出的重量为:1,3,4,5,(6 - 1),(6 + 1),(6 - 3),(6 + 3),(6 - 4),(6 + 4),(6 - 5),(6 + 5),6

当前可以称出的重量有:1,2,3,4,5,6,7,9,10,11

如果看到这里你还是有些模糊,我们再来一个例子

例如:我们输入4个砝码,分别是1,3,5,7

当输入第一个砝码(1)时,可以称出的重量为:1

再输入第二个砝码(3)时,可以称出的重量为:1,(3 - 1),(3 + 1),3

当前可以称出的重量有:1,2,3,4

再输入第三个砝码(5)时,可以称出的重量为:1,2,3,4,(5 - 1),(5 + 1),(5 - 2),(5 + 2),(5 - 3),(5 + 3),(5 - 4),(5 + 4),5

当前可以称出的重量有:1,2,3,4,5,6,7,8,9

在输入第四个砝码(7)时,可以称出的重量为:1,2,3,4,5,6,7,8,9,(7 - 1),(7 + 1),(7 - 2),(7 + 2),(7 - 3),(7 + 3),(7 - 4),(7 + 4),(7 - 5),(7 + 5),(7 - 6),(7 + 6),(7 - 7),(7 + 7),(7 - 8),(7 + 8),(7 - 9),(7 + 9),7

这里出现了负数和0,显然不合理,在代码中将会使用绝对值,结果不包含0

当前可以称出的重量有:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16

如果到这里您还有疑问和困惑欢迎评论留言。

如果您发现代码或思路有问题欢迎批评指正。

4、代码实现

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();/*定义一个二维数组,分为两行第一行用来存储可以被称出的重量,第j列表示的就是重量j第二行用来临时存放称出的重量,作为重量的中转站dp[i][j] == true时,表示重量j可以被称出dp[i][j] == false时,表示重量j不能被称出*/boolean[][] dp = new boolean[2][100000];// 定义砝码的重量int weight;// 所有砝码的总重量,所有的砝码加在一起表示称出的最大重量// 因题目要求砝码总重量不超过100000,上面的dp设置最大重量为100000int sum = 0;// 循环n次,也就是砝码的个数while(n != 0) {n--;// 获得当前砝码weight = scanner.nextInt();// 添加到总砝码中sum += weight;// 从重量1开始计算,重量0不包括在内for(int i = 1;i <= sum;i++) {// 如果dp[0][i]为true,表示重量i可以被称出if(dp[0][i]) {// 因此计算当前砝码与重量i相加减,获得新的可称出重量// 存放到第二行中int x = Math.abs(weight - i);dp[1][x] = true;dp[1][weight + i] = true;}}// 将存放在第二行中的可称出重量,存放在第一行中for(int i = 1;i <= sum;i++) {if(dp[1][i]) {dp[0][i] = true;}}// 当前砝码的重量肯定是可以被称出的,存入数组中dp[0][weight] = true;}int count = 0;// 计算第一行可以被称出重量的个数并输出for(int i = 1;i <= sum;i++) {if(dp[0][i]) {count++;}}System.out.println(count);}
}

蓝桥杯—砝码称重—Java相关推荐

  1. 【蓝桥杯-砝码称重】

    蓝桥杯-砝码称重 问题描述: 你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W1, W2, · · · WN 请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边 输入的第一行包含 ...

  2. 蓝桥杯 砝码称重【第十二届】【省赛】【B组】

    动态规划思想解题 将砝码按照输入的顺序,依次加入称量的过程中. dp[0][]表示的是在加入第一个砝码后,当前可以表示称重的重量: 如题干中,砝码加入的顺序是1 4 6,故在第一个砝码(即重量为1的砝 ...

  3. 蓝桥杯 砝码称重【第十二届】【动态规划】以及一些总结

    写在前面:没有ac,只过了80%样例,我的dp并不是这道题的最优dp算法!先这样骗点分吧,dp在学了,在学了( 思路:每次加入一个砝码a,让a与a之前产生的所有值进行加减运算以产生新值(记得考虑a本身 ...

  4. 第十二届蓝桥杯省赛A组砝码称重Java解题思路及代码

    [问题描述] 你有一架天平和 N个砝码,这N个砝码重量依次是W1, W2, -, Wn. 请你计算一共可以称出多少种不同的重量?注意砝码可以放在天平两边. [输入格式] 输入的第一行包含一个整数N. ...

  5. 第十二届蓝桥杯省赛 Java 大学 B 组—砝码称重—满分百分题解

    第十二届蓝桥杯省赛 Java 大学 B 组-砝码称重-满分百分题解 一.解题思路 1.解法一( Java ) 解法思路:简单模拟 ☝ArrayList 遍历 + HashSet 存储(去重) 伪代码如 ...

  6. 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-936 砝码称重

    第十四届蓝桥杯集训--练习解题阶段(无序阶段)-ALGO-936 砝码称重 目录 第十四届蓝桥杯集训--练习解题阶段(无序阶段)-ALGO-936 砝码称重 前言 关于数学的疑问 算法训练 砝码称重 ...

  7. 砝码称重【第十二届蓝桥杯】【省赛】【B组】

    砝码称重[第十二届蓝桥杯][省赛][B组] Description 你有一架天平和N个砝码,这N个砝码重量依次是W1.W2,-WN 请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边. ...

  8. 第十二届蓝桥杯省赛 C/C++大学B组 试题G:砝码称重

    试题题目: 本题为编程题第二题 解题思路: 方法一:暴力求解 1.分析    首先利用数组W[N]W[N]W[N]记录NNN块砝码的质量.    模拟放取过程.先取第一块砝码放在天平上,再取第二块砝码 ...

  9. 【题解】【蓝桥杯】试题 历届真题 砝码称重【第十二届】【省赛】【B组】

    题目链接 试题 历届真题 砝码称重[第十二届][省赛][B组] 题目描述 解题思路 暴力,两个map,分别存储当前能称出的重量和遍历时用于计算的重量 需要注意的三点是 abs函数是在math.h里面的 ...

最新文章

  1. 可交互的对抗网络如何增强人类创造力?
  2. 基于easyui开发Web版Activiti流程定制器详解(四)——页面结构(下)
  3. CSP认证201609-1 最大波动[C++题解]:遍历
  4. php 函数传值_传址_函数参数,php函数的传值与传址(引用)详解
  5. 项目管理一般知识:什么是项目?什么是项目管理?
  6. 【ARM】ARM汇编程序设计(三) 循环结构
  7. 非线性最优化(二)——高斯牛顿法和Levengerg-Marquardt迭代
  8. python学习笔记之random模块
  9. Unity计划放弃支持部分图形特性
  10. 关于学计算机有什么用检讨书,旷计算机课检讨书
  11. 通过密钥 SFTP(三)指定不限定根目录
  12. python无法启动此程序因为_(python shell怎么用)为啥我按照python安装教程,总说无法启动此程序,因为计算机中丢失?...
  13. 轻松记录南极最美丽风景 有TA就已经足够
  14. erb自动生成html页面一例
  15. html定位的实例,H5案例分享:基于浏览器的HTML5地理定位
  16. i513500h和r5 5600h选哪个 r55600h和i513500h差多少
  17. 为什么选择量化交易?
  18. Pycharm安装FLASK出现错误,无法安装
  19. Ehab and Path-etic MEXs
  20. linux怎么打开rpm文件怎么打开,RPM格式文件怎么打开

热门文章

  1. 《云计算白皮书(2021)》(可下载)
  2. qt quick-qml高德地图实现V1版本(跨平台支持、无需浏览器内核,运行迅速,下个版本实现位置搜索)
  3. [ZT]当代女性畸变的择偶观
  4. 基于AWS云服务的大数据与大规模计算的应用架构...
  5. 【DevOps】尝试一文读懂,什么是DevOps?
  6. html table表格标签内容如何居中显示?表格的align属性的用法介绍
  7. Matlab自适应均线_用MATLAB求移动平均线,不用MOVAVG函数,求MA5,MA10 – MATLAB中文论坛...
  8. 蚂蚁韵保公司注销 蚂蚁金服旗下仍有保险中介牌照
  9. windows备份远程mysql数据库
  10. [HG5143D]电信光猫3.0网关折腾笔记