百练-4141:砝码称重

基本算法之枚举.209.砝码称重 枚举每种砝码出现的克数产生的变化 阅读详情

总时间限制: 1000ms
内存限制:65536kB

描述

设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000),要求:计算用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况。

输入

一行,包括六个正整数a1,a2,a3,a4,a5,a6,表示1g砝码有a1个,2g砝码有a2个,……,20g砝码有a6个。相邻两个整数之间用单个空格隔开。

输出

以“Total=N”的形式输出,其中N为可以称出的不同重量的个数。

样例输入
1 1 0 0 0 0
样例输出
Total=3
提示

样例给出的砝码可以称出1g,2g,3g三种不同的重量。

思路

采用动态规划的方法来做。
对于质量 i , dp [ i ] = 1,表示砝码可以组成重量 i ;dp [ i ] = 0,表示不可以组成。
我们依次处理每个砝码,对于第 j 个砝码,质量为 wj 。
推导公式为:
dp [ i - wj ] = 1 ==> dp [ i ] = 1 (若 i - wj 可以称到,则 i 也可以被称到)
代码:

#include<stdio.h>
#include<math.h>
int dp[1010];
int kg[6]={1,2,3,5,10,20};//记录每种砝码的质量
int num[6];//记录每种砝码的数量
int main( )
{
	int sum=0,ans=0;
	for(int i=0;i<6;i++)
	{
		scanf("%d",&num[i]);
		sum+=num[i]*kg[i];
	}
	dp[0]=1;
	for(int i=0;i<6;i++)
	{
		for(int j=1;j<=num[i];j++)
		{
			for(int k=sum;k>=kg[i];k--)
			{
				if(dp[k-kg[i]]==1) dp[k]=1; 
			}
		}
	}
	for(int i=1;i<=sum;i++)
	{
		if(dp[i]==1) ans++;
	}
	printf("Total=%d",ans);
	return 0;
}

附上一个容易理解的大佬网址:
https://blog.youkuaiyun.com/jiangjiangjiang6/article/details/104481363/

十二届蓝桥杯 砝码称重(python) 阅读详情

相关推荐

深入解析Unity3D中PostLateUpdate突然占用大量时间的原因

在Unity3D的生命周期中,是一个在LateUpdate之后被调用的方法。它通常用于处理一些需要在所有更新(包括物理更新和动画更新)之后进行的逻辑。由于它在游戏循环的后期阶段被调用,因此它通常用于处理与渲染直接相关的任务,如相机调整、UI更新等。突然占用大量时间的问题可能由多种原因引起,包括复杂的逻辑处理、频繁的资源加载、不恰当的渲染优化、插件或第三方库的副作用以及内存泄漏或垃圾回收等。为了解决这个问题,开发者需要仔细审查和优化中的代码,同时利用Unity提供的工具来监控和分析游戏性能。

Yori_22的博客 979

OpenJudge NOI 2.1 8755:砝码称重 | 洛谷 P2347 [NOIP1996 提高组] 砝码称重

OpenJudge NOI 2.1 8755:砝码称重设重量为1g、2g、3g、5g、10g、20g的砝码的总数量分别为:a1,a2,a3,a5,a10,a20a_1, a_2, a_3, a_5, a_{10}, a_{20}a1​,a2​,a3​,a5​,a10​,a20​,选择使用的砝码数量分别为:i1,i2,i3,i5,i10,i20i_1, i_2, i_3, i_5, i_{10}, i_{20}i1​,i2​,i3​,i5​,i10​,i20​, 设bool类型的vis数组,为真表示可以称出重

君义NOIP的博客 1927

大疆 DJI Mobile SDK实战指南——从零构建Android示例开发环境

本文提供了一份详尽的DJI Mobile SDK Android开发环境搭建实战指南。文章手把手教你从注册开发者账号、获取App Key,到配置Android Studio、下载官方示例代码,最终成功运行DJI官方Android示例程序,帮助开发者快速入门无人机应用开发,避开常见编译与依赖问题。

weixin_29188043的博客 274

8755:砝码称重 ②

描述设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重&lt;=1000),要求:计算用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况。输入一行,包括六个正整数a1,a2,a3,a4,a5,a6,表示1g砝码有a1个,2g砝码有a2个,……,20g砝码有a6个。相邻两个整数之间用单个空格隔开。输出以“Total=N”的形式输出,其中N为可以称出的不同重量的个数。#inc...

未来有个世界等着你 2145

SAP-PP 返工订单成本归集优化:从物料结算到成本中心的配置与增强实践

本文深入探讨SAP-PP模块中返工订单成本归集的优化方案,重点解析从物料结算到成本中心的配置与增强实践。通过结算参数文件配置、分配结构调整及增强开发实战,解决返工费用误计入物料成本的问题,确保财务核算精准性。文章还提供测试验证方案与常见报错处理技巧,助力企业实现成本数据清晰流向分析。

weixin_29260291的博客 365

【STM32Cube_14】使用硬件I2C读写环境光强度传感器(BH1750)

本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件I2C外设读取环境光强度传感器数据(BH1750)

Mculover666的博客(嵌入式) 7242

【OpenJudge NOI】题解目录

【OpenJudge NOI】题解目录 OJ链接:OpenJudge NOI 以下为本人做的OJ题解 针对每一道题我都会给出题目考点、解题思路、题解代码。必要时也会给出不同的解题方法。 本人水平有限,如有不足之处,欢迎大家指正。如看过后还有不明白的地方,欢迎在评论区留言。 作者:君义_noip 1.1编程基础之输入输 1 Hello, World!:点击这里 2 输出第二个整数:点击这里 3 对齐输出:点击这里 4 输出保留3位小数的浮点数:点击这里 5 输出保留12位小数的浮点数:点击这里 6 空格分隔输

君义NOIP的博客 7万+

工程师必读一次性讲明白系列(十三)眼图、阻抗匹配、信号一致性、射频匹配、电磁感应

概念主要作用影响因素解决方法眼图评估信号质量,显示失真和噪声噪声、信号失真、时序抖动改善信号源、使用低噪声组件阻抗匹配避免信号反射,提高传输效率阻抗不匹配、传输线路特性使用匹配电路、适配器信号一致性保证信号稳定准确传输传输线路、噪声干扰使用屏蔽、滤波器,选择合适线路射频匹配确保射频信号高效传输天线设计、阻抗不匹配使用射频匹配器、调整天线设计电磁感应防止电磁干扰对信号的影响设备之间的电磁干扰(EMI)屏蔽、接地、滤波器。

weixin_43199439的博客 158

洛谷——砝码称重

题目传送门: 引入 今天听了大佬的讲课,然后打了一下砝码称重这道题。 我用了两种方法:枚举法和01背包 枚举法在洛谷上只得了64分有4个超时了,01背包就全部通过了。 题目 题目描述 设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重 \le 1000≤1000), 输入格式:输入六个数:a1 a2 a3 a4 a5 a6 输出方式:Total=N 输入输出样例 输入 1 1 0 0 0 0 输出 Total=3 法一:枚举法就是相当于桶排序,就是用一个sum存储给定砝码能

weixin_46754239的博客 341

边缘设备部署全攻略——ARM架构设备的OpenClaw优化(2026实测)

本文详细介绍了ARM架构设备上OpenClaw的部署与优化方案。针对边缘计算场景,文章系统分析了三类ARM设备:嵌入式设备(如Raspberry Pi 4、Jetson Nano)、工业设备(如BeagleBone、i.MX8M Plus)和服务器设备(如Marvell Armada、AWS Graviton3),并提供了详细的性能与功耗对比数据。在系统配置方面,重点推荐了Ubuntu ARM、Debian ARM和OpenWRT三种操作系统,包括内核版本、必备软件包和针对边缘环境的优化策略(如CPU频率调

博客 410

硬核反坑!YOLOv5训练避坑指南:根治梯度消失、不收敛、检测漏框三大核心问题(附实战代码+调优清单)

数据是基础,超参数是关键,模型是工具,训练策略是保障。梯度消失、不收敛、检测漏框这三大问题,本质上都是“数据-模型-训练”不匹配的结果。梯度消失/爆炸:优先调整学习率策略+梯度裁剪,其次优化模型结构;训练不收敛:优先清洗数据集,其次调优超参数,最后检查配置文件;检测漏框:优先重新聚类锚框,其次增强浅层特征,最后调整推理参数。YOLOv5训练的最高境界,不是调参,而是让数据、模型、训练策略三者完美匹配。按本文的方法反坑,你的YOLOv5训练一定能一次成功!🚀。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 233

4141:砝码称重 百练noi Java枚举

4141:砝码称重 百练noi Java枚举 题目来源:http://bailian.openjudge.cn/practice/4141 描述: 设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000),要求:计算用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况。 输入: 一行,包括六个正整数a1,a2,a3,a4,a5,a6,表示1g砝码有a1个,2g砝码有a2个,……,20g砝码有a6个。相邻两个整数之间用单个空格隔开 输出: 以“Total=N”的形式输出,

weixin_45804381的博客 374

注册GitHub时出现Unable to verify your captcha response.Please visit https://docs.github.com/解决方案(持续更新)

本文主要介绍了注册GitHub时出现Unable to verify your captcha response. Please visit https://docs.github.com/articles/troubleshooting-connectivity-problems/#troubleshooting-the-captcha for troubleshooting information.解决方案,希望能对学习使用GitHub的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 8万+

习题3-4 砝码称重(POJ 4141)(动态规划***)

习题3-4 砝码称重(POJ 4141 洛谷2347) Note: 用的动态规划解决,两个网站上问题描述一摸一样,提交代码在POJ4141上无法通过,在洛谷上可以通过,,,, 不知道什么原因 参考原博文https://blog.youkuaiyun.com/dreamandxiaochouyu/article/details/52450688在此基础上修改为本题 问题描述: 设有1g、2g...

jiangjiangjiang6的博客 2343

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Bailian4141 砝码称重【DP】

4141:砝码称重 总时间限制: 1000ms 内存限制: 65536kB 描述 设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000),要求:计算用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况。 输入 一行,包括六个正整数a1,a2,a3,a4,a5,a6,表示1g砝码有a1个,2g砝码有a2个,……,20g砝码有a6个。相邻两个整数之间用单个空格隔开。 输出 以“Total=N”的形式输出,其中N为可以称出的不同重量的个数。 样例输入 1 1 0 0 0 0

海岛Blog 729

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

P2347 [NOIP1996 提高组] 砝码称重【DP】

设有1g2g3g5g10g20g的砝码各若干枚(其总重 $ \le 1000$),可以表示成多少种重量?

海岛Blog 1393

4141:砝码称重

这个逻辑感觉讲不通,我总感觉这个做法是列举了同一种质量的砝码的称重组合,就比如1g的砝码如果有3个,她就能称重1,2,3,然后2g的继续,是这样的结果,那三个for循环能实现不同质量砝码的组合吗?//对于第i种砝码,枚举使用0~num[i]个该砝码,对于每个数量j,从后往前循环dp数组。//若dp[k-kg[i]]==1,则说明使用i种砝码可以称出重量k,故dp[k]=1。

qq_53826699的博客 151

砝码称重(Java)

将砝码独立来看, 在当前砝码称出重量x的情况下,对于砝码i都有三种操作: 1. x+砝码i的重量(放同侧) 2. x-砝码i的重量(放异侧) 3. x(不放) 显然前面两种操作才有可能产生不同的重量。 另外砝码i一定能称出其自身的重量 又考虑到set能够用于排除相等的元素 由于砝码称出的重量是正的,因此将操作获得的结果取绝对值再放入集合中

melodyzhan的博客 2088

蓝桥杯—砝码称重—Java

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,

lishifu_的博客 5654

Python蓝桥杯真题——砝码称重

看到很多博主都是用的dp算法,时间和内存如下 这里利用python 集合set的特性,即元素不重复,编写代码 status=set()#创建集合,集合特点是能元素不重复,和这个题符合得很好 n=int(input()) w=list(map(int,input().split())) status.add(w[0])#集合把第一个砝码加进去 for i in range(1,n): a=[]#用来存储新砝码w[i]与集合现有状态的运算结果 for num in status:#遍历当前集

weixin_45800100的博客 1258

百练OJ 刷题目录

一、简单计算题 例题 2750/3237 鸡兔同笼 1657 棋盘上的距离 2808 校门外的树 2801 填词 1017 装箱问题 练习题 2714 平均年龄 2796 数字求和 2807 两倍 2713 肿瘤面积 2677 肿瘤检测 2800 垂直直方图 2715 谁拿了最多的奖学金 2767 简单密码 2680 化验诊断 2818 密码 二、数制转换问题 例题 2972 相邻数字的基数等比:...

wdycs1997的博客 7738

蓝桥杯——砝码称重(JAVA)

你有一架天平和 NN 个砝码,这 NN 个砝码重量依次是 W_1, W_2, · · · , W_NW1​,W2​,⋅⋅⋅,WN​。请你计算一共可以称出多少种不同的重量?注意砝码可以放在天平两边。

qq_63746090的博客 1145

砝码称重:动态规划与母函数方法

砝码称重

auto0906的专栏 694

【蓝桥杯】砝码称重 Java

import java.util.ArrayList; import java.util.HashSet; import java.util.Objects; import java.util.Scanner; public class Main_10_a { /** * 砝码称重 2.0 * 动态规划 * 1.0版本 缺点:dp[N+1][A] A过大时 影响时间 * 将在2.0版本进行优化 思路:只访问当前行权值为1的元素 * 不足:考虑结果.

qq_42487122的博客 493

枚举 砝码称重

设有1g,2g,3g,5g,10g,20g1g,2g,3g,5g,10g,20g的砝码各若干枚(其总重小于等于10001000),现在求问这些砝码能称出多少不同的重量。 输入格式 一行六个整数,分别代表1g1g砝码的个数,分别代表2g2g砝码的个数,分别代表3g3g砝码的个数,分别代表5g5g砝码的个数,分别代表10g10g砝码的个数,分别代表20g20g砝码的个数。 输出格式 输出一行,格式为Total=nn。 (nn表示用这些砝码能称出的不同重量的个...

qq_61176213的博客 787

【dfs+dp】砝码称重

P1441 砝码称重 思路:dfs枚举去掉哪些砝码, 01背包求方案数, 各种情况取max记为ans输出√ 边界情况处理不好交了三遍QAQ dp[j] = dp[j] + dp[j - a[i]] 选上这个砝码的情况+ 不选的情况 1 #include<cstdio> 2 #include<cstring> 3 #include<iostrea...

weixin_34279184的博客 194
上一篇: 百练-2692:假币问题(枚举)
下一篇: 百练-2812:恼人的青蛙(暴力枚举+剪枝优化)
Cosmic_Tree
博客等级 码龄7年 134粉丝 337原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值