砝码称重问题【dp】

2023-11-09

设有 1g , 2g , 3g , 5g , 10g , 20g 的砝码各若干枚 (  总重≤

1000g) ,要 求:

  

输入:

       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 三种不同的重

量。

code:

#include<bits/stdc++.h>
using namespace std;

int main()
{
	int dp[10005],n,s[7],num,sum=0,i,j,z,ans[1005];
	int m[]={1,2,3,5,10,20};
	cout<<"请输入1g,2g,3g,5g,10g,20g,每种砝码的个数"<<endl;
	for(i=0;i<6;i++)
	{
		cin>>s[i];
		sum+=s[i]*m[i];
	}
	memset(dp,0,sizeof(dp));
	dp[0]=1;
	dp[sum]=1;
	for(i=0;i<6;i++)
		for(j=0;j<s[i];j++)
			for(z=sum;z>=m[i];z--)
				if(dp[z-m[i]]==1)
					dp[z]=1;
	for(i=1,j=0;i<=sum;i++)
		if(dp[i]==1)
		{
			num++;
			ans[j++]=i;
		}
	cout<<"Total="<<num<<",表示可以称出 ";
	for(i=0;i<j-1;i++){
		cout<<ans[i]<<"g,";
	}
	cout<<ans[j-1]<<"g "<<j<<"种不同的重量。"<<endl; 
	return 0;
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

砝码称重问题【dp】 的相关文章

  • 备战2023蓝桥国赛-移动服务

    题目描述 解析 这道题我想复杂了 一开始我是这样想的 设dp i j 表示按顺序满足到第i个请求时 最初在j号点的人到达第i个请求的位置的情况下的最小花费 state i j 表示按顺序满足到第i个请求时 最初在j号点的人到达第i个请求的位
  • 计蒜客 蒜头君的新游戏(DP)

    蒜头君的新游戏 include
  • poj 2096 Collecting Bugs

    Problem poj org problem id 2096 vjudge net contest 151678 problem Q Reference blog csdn net xingyeyongheng article detai
  • 【BZOJ 4069】 [Apio2015]巴厘岛的雕塑

    4069 apio2015 巴厘岛的雕塑 Time limit 1000 ms Memory limit 65536 KB Description The province of Bali has many sculptures locat
  • 【Luogu_P2758】编辑距离【动态规划】

    思路 设f i j 标识a匹配到i位 b匹配到j位 于是很好转移 c o d e code code include
  • 最长01交替子串(浪潮笔试题)

    题意 给一个只有0和1的字符串 允许反转一个连续区间 即0变成1 1变成0 求最长的01交替串多长 允许不连续 我最先想到的是动态规划解法 状态设计方面 首先一个串的状态会有以0结尾和以1结尾两种 然后题目中说允许反转一个连续区间 那么根据
  • 动态规划问题——最长上升子序列(LIS)(二)

    原文转载自我的博客benym cn 推荐链接 动态规划问题 最长上升子序列 LIS 一 动态规划问题 最长上升子序列 LIS 三 题目描述 一天 小凯同学震惊的发现 自己无内的PM2 5指标是有规律的 小凯采样了PM2 5数值 发现PM2
  • 某企业每月给其A、B、C 和D 四个门店一共发送6 个集装箱的某种货物,如果各门店出售该种货物的利润(万元)如下表:

    某企业每月给其A B C 和D 四个门店一共发送6 个集装箱的某种货物 如果各门店出售该种货物的利润 万元 如下表 试求这6 箱货物如何分配给各门店 才能获得最大总利润 解题思路 将问题按卖场分为四个阶段 将A B C D四个卖场分别编号为
  • codeforces Gym 101341 K Competitions

    Problem codeforces com gym 101341 problem K vjudge net contest 162325 problem K Meaning 有 n 场比赛 每一场有 开始时间 a 结束时间 b 价值 c
  • hdu 1003 最大连续子序列和及起始位置 && hdu 1087 最大上升子序列和

    hdu 1003 题意 求最大连续子序列和及起始位置 对于动态规划问题要找出其子问题 考虑到dp的无后效性 dp i 表示以i为结尾的最大值 当dp i 1 gt 0时 以i 1为值对以i为结尾的值有贡献 否则起始位置变为自己 动态地更新最
  • 砝码称重问题【dp】

    设有 1g 2g 3g 5g 10g 20g 的砝码各若干枚 其 总重 1000g 要 求 输入 a1 a2 a3 a4 a5 a6 表示 1g 砝码有 a1 个 2g 砝码有 a2 个 20g 砝码有 a6 个 输出 Total N N
  • Economic Difficulties【DP】【Codeforces 1263 F】

    Codeforces Round 603 Div 2 F 题意 给你两棵树 结点分别是1 A与1 B 然后给了N台设备 并且A树和B树的叶子结点都是链接设备的 问的是 我们最多可以割几条边使得每个设备都能链接A树或者B树上任意的一个 1 号
  • 牛客网-网易2018笔试第7题 -合唱(DP问题)

    题目描述 小Q和牛博士合唱一首歌曲 这首歌曲由n个音调组成 每个音调由一个正整数表示 对于每个音调要么由小Q演唱要么由牛博士演唱 对于一系列音调演唱的难度等于所有相邻音调变化幅度之和 例如一个音调序列是8 8 13 12 那么它的难度等于
  • 递归、加法原理,如何分解问题(独立且完备的划分)

    加法原理适用于做一件事有n种独立不相交且完备的方向 每个方向上有ai种方案 则总的方案数就是 a1 a2 an 例题 把n个数分为k个非空子集 有多少种分法 分解问题 第一个集合里放多少个数把原问题的解分成了独立且完备的若干方向 分别解每个
  • [HDU 5079][2014 Asia AnShan Regional Contest]Square(DP套DP)

    题目链接 http acm hdu edu cn showproblem php pid 5079 题目大意 给你一个 n n n 8 n middot n n le 8 的棋盘 上面有一些格子必须是黑色 其它可以染黑或者染白 对于一个棋盘
  • 备战2023蓝桥国赛-传纸条

    题目描述 解析 这道题想了我好久 一开始我是想假如只走一条路线 从 1 1 走到 m n 这种问题该怎么解决呢 针对这种问题我是设了dp k i j 表示走了k步到达 i j 的好心程度之和的最大值 然后根据这个来写出转移方程来计算 后面就
  • 编程之美2015初赛第二场AB

    题目1 扑克牌 时间限制 2000ms 单点时限 1000ms 内存限制 256MB 描述 一副不含王的扑克牌由52张牌组成 由红桃 黑桃 梅花 方块4组牌组成 每组13张不同的面值 现在给定52张牌中的若干张 请计算将它们排成一列 相邻的
  • 【DP】拔河比赛

    题目 一个学校举行拔河比赛 所有的人被分成了两组 每个人必须 且只能够 在其中的一组 要求两个组的人数相差不能超过1 且两个组内的所有人体重加起来尽可能地接近 输入 输入数据的第1行是一个n 表示参加拔河比赛的总人数 n lt 100 接下
  • codeforces 102263 J

    题目 一开始贪心 直接枚举每个位置 一直wa 不知道错哪里了 后来才发现是dp 很多种情况是无法直接贪心的 设 d p i 0
  • AtCoder Beginner Contest 332 G. Not Too Many Balls(最大流转最小割 dp)

    题目 n n lt 500 种球 第i种有ai 0 lt ai lt 1e12 个球 m m lt 5e5 个盒子 第j个能放bj 0 lt bj lt 1e12 个球 特别地 第j个盒子最多能放i j个第i种球 求m个盒子能放的最多的球的

随机推荐

  • [Atcoder ABC222] F - Expensive Expense

    Time Limit 4 sec Memory Limit 1024 MB Score 500 points Problem Statement The Kingdom of AtCoder is composed of N N N tow
  • python+Django的web开发实例

    一 创建一个项目 如果这是你第一次使用Django 那么你必须进行一些初始设置 也就是通过自动生成代码来建立一个Django项目 一个Django项目的设置集 包含了数据库配置 Django详细选项设置和应用 特性配置 具体操作步骤如下所示
  • TaiShan 200服务器安装Ubuntu 18.04

    TaiShan 200服务器安装Ubuntu 18 04 0 镜像下载 1 准备工作 1 1 软件硬件环境准备 1 2 组网规划 1 3 磁盘分区规划 1 4 可选 RAID配置 2 通过光驱安装Ubuntu 18 04 0 镜像下载 ub
  • 峰值电流模式Buck控制器

    图1 7 1峰值电流模式Buck Converter方块图 图1 7 1包含两个回路 分别是外回路 电压控制回路 和内回路 电感电流控制回路 外回路 电压控制回路 此回路类似与输出电压控制模式类似 Vcomp为输出电压与基准电压通过比较器而
  • Android Studio 中使用uiautomatorviewer插件

    1 综述 Android Studio是Google官方提供的一款用于开发Android应用程序的集成开发环境 IDE 它基于IntelliJ IDEA开发而来 为开发者提供了完整的工具链 包括代码编写 调试 测试 性能优化等 Androi
  • C++实现MySQL数据库连接池

    C 实现MySQL数据库连接池 涉及技术 MySQL数据库编程 单例模式 STL容器 C 11多线程 线程互斥 线程互斥 线程同步通信和unique lock 智能指针shared ptr lambda表达式 生产者 消费者线程模型 项目背
  • 职场日常:测试常用测试工具盘点,你用过几个?

    测试工具永远是软件测试人员的得力助手 不能完全依赖工具 但也不能没有工具 在学习软件过程中 要著中软件测试工具的使用 1 测试管理工具 禅道 简单好用 市场主流 互联网行业居多 Jira 简单好用 bugzilla 功能简单 svn 代码和
  • StringBuffer简单使用

    StringBuffer简单使用 一 简介 StringBuffer 是可以存储和操作字符串 即包含多个字符的字符串数据 String类是字符串常量 是不可更改的常量 而StringBuffer是字符串变量 它的对象是可以扩充和修改的 St
  • 【Linux】如何在Linux下提交代码到gittee

    文章目录 使用 git 命令行 创建项目 三板斧第一招 git add 三板斧第二招 git commit 三板斧第三招 git push 其他几个重要的命令 git pull 将远端同步到本地 git rm 删除 git log 查看提交
  • 如何让 useEffect 支持 async/await?

    大家在使用 useEffect 的时候 假如回调函数中使用 async await 的时候 会报错如下 看报错 我们知道 effect function 应该返回一个销毁函数 return返回的 cleanup 函数 如果 useEffec
  • linux 查看运行进程的可执行文件所在目录

    1 获取PID 方法1 执行top命令 然后找到对应的进程 方法2 执行ps ef grep 程序名 2 进入proc目录下对应的进程路径 cd proc 3 sudo ls l user为root的进程需要sudo权限 exe连接的即可执
  • go语言基础-----11-----正则表达式

    1 正则表达式介绍 正则表达式是一种进行模式匹配和文本操纵的复杂而又强大的工具 虽然正则表达式比纯粹的文本匹配效率低 但是它却更灵活 按照它的语法规则 随需构造出的匹配模式就能够从原始文本中筛选出几乎任何你想要得到的字符组合 Go语言通过r
  • Java-API简析_java.lang.RuntimePermission类(基于 Latest JDK)(浅析源码)

    版权声明 未经博主同意 谢绝转载 请尊重原创 博主保留追究权 https blog csdn net m0 69908381 article details 132571263 出自 进步 于辰的博客 因为我发现目前 我对Java API的
  • 【MySQL安装问题】找不到MSVCR120.dll,无法继续执行代码。

    Q 由于找不到MSVCP120 dll 无法继续执行代码 重新安装程序可能会解决此问题 A 参考解决方法链接由于找不到MSVCP120 dll 无法继续执行代码 重新安装程序可能会解决此问题 琴时 博客园 解决方式 点击进入微软官网下载地址
  • MATLAB 数学应用 初等数学 绘制虚数和复数数据图

    文章最后留了个超实用的matlab在线测试工具 绘制一个复数输入 本文演示如何绘制复数向量 z 的虚部与实部 在此复数输入中 plot z 等同于 plot real z imag z 其中 real z 是 z 的实部 imag z 是
  • docker容器部署pytorch模型,gpu加速部署运行

    参考文章 https www zhihu com search type content q Docker EF BC 8C E6 95 91 E4 BD A0 E4 BA 8E E3 80 8C E6 B7 B1 E5 BA A6 E5
  • thinkphp6 入门教程合集(更新中)

    thinkphp6 入门 1 安装 路由规则 多应用模式 thinkphp6 入门 1 安装 路由规则 多应用模式 软件工程小施同学的博客 CSDN博客 thinkphp6 入门 2 视图 渲染html页面 赋值 thinkphp6 入门
  • 组件是如何通信的?技术水平真的很重要!学习路线+知识点梳理

    开头 此文希望能给想跳槽和面试朋友一些参考 金九银十已过 面试的狂热季也已结束 小编也正是选择了在金九十银跳槽 之前在腾讯做了五年Android开发工作 之后感觉公司不一定能继续提供给我想要的发展空间与前景 说白了 有家室 我需要更高的薪酬
  • pandas提取时间里面的年月日_python入门

    时间模块 datetime 1 datetime date date对象 年月日 datetime date today 该对象类型为datetime date 可以通过str函数转化为str In 1 import datetime In
  • 砝码称重问题【dp】

    设有 1g 2g 3g 5g 10g 20g 的砝码各若干枚 其 总重 1000g 要 求 输入 a1 a2 a3 a4 a5 a6 表示 1g 砝码有 a1 个 2g 砝码有 a2 个 20g 砝码有 a6 个 输出 Total N N