第十二届蓝桥杯省赛B组(C/C++)试题G砝码称重

2023-10-29

题目

原题链接


问题描述

有一架天平和 n ( 1 ≤ n ≤ 100 ) n(1\leq n \leq 100) n(1n100)个砝码,问通过灵活的使用砝码,这个天平可以称出多少种不同的质量。


分析

步骤一:确定状态
步骤二:确定状态转移方程
步骤三:确定边界情况和初始条件
步骤四:确定计算顺序

步骤一:确定状态
d p [ i ] [ j ] dp[i][j] dp[i][j]表示有 i i i个砝码时,能否称量出质量 j j j,1表示可行,0表示不可行。
步骤二:确定状态转移方程
欲求 d p [ i ] [ j ] dp[i][j] dp[i][j],已知在有 i − 1 i-1 i1个砝码的条件下的所有称量情况,接下来就是求处理第 i i i个砝码时的所可以得到的称量情况。
1.若不放该砝码,则 d p [ i ] [ j ] = d p [ i − 1 ] [ j ] dp[i][j]=dp[i-1][j] dp[i][j]=dp[i1][j];
2.若放,则又有两种情况,于左或于右:
前提当然是 d p [ i − 1 ] [ j ] dp[i-1][j] dp[i1][j]要存在。

if(dp[i-1][j]){
	dp[i][j+m[i]]=1;
	if(j-m[i]>0)dp[i][j-m[i]]=1;
}

步骤三:确定边界情况和初始条件
边界条件是无论多少砝码,都可以称量出质量 0 0 0
步骤四:确定计算顺序
自上往下,自左往右。

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5;
#define INF 99999999
int dp[105][N];
int a[N];
int n; 
int main(){
	cin>>n;
	dp[0][0]=1;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		dp[i][0]=1;
	}
	for(int i=1;i<=n;i++){
		for(int j=N-1;j>=0;j--){
			if(dp[i-1][j]){
				dp[i][j]=1;
				dp[i][j+a[i]]=1;
				dp[i][abs(j-a[i])]=1;
			}
		}
	}
	int ans=0;
	for(int i=0;i<N;i++){
		if(dp[n][i]){
			ans++;
			cout<<i<<endl;
		}
	}
	cout<<ans-1;
	return 0;
}
/*
3
1 4 6

10
*/
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define fir(i, a, b) for (int i = (a); i <= (b); i++)
#define rif(i, a, b) for (int i = (a); i >= (b); i--)
const ll N=1e5+5;
const ll mod=1e9+7;
ll n,m,a[105][N];
int main(){
	cin>>n;
	fir(j,1,n){
		cin>>m;
		a[j][m]++;
		fir(i,1,N-1){
			if(a[j-1][i]){
				a[j][i]=1;
				a[j][i+m]=1;
				a[j][abs(i-m)]=1;
			}
		}
	}
	ll cnt=0;
	fir(i,1,N-1){
		if(a[n][i]){
			cnt++;
			//cout<<i<<" ";
		}
	}
	cout<<cnt;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第十二届蓝桥杯省赛B组(C/C++)试题G砝码称重 的相关文章

  • C++ 维护子类对象的混合集合

    如果我在这里错过了一个相当基本的概念 我很抱歉 但我正在尝试弄清楚如何维护多个类类型的集合 所有类类型都派生自同一个父类 并且在检索它们时仍然可以访问它们的特定于子类的方法从集合中 作为上下文 我有一个基类 BaseClass 和许多类 例
  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • 如何从 C# 中的 dataTable.Select( ) 查询中删除单引号?

    所以我有一个经销商名称列表 我正在我的数据表中搜索它们 问题是 一些傻瓜必须被命名为 Young s 这会导致错误 drs dtDealers Select DealerName dealerName 所以我尝试替换字符串 尽管它对我不起作
  • 适合初学者的良好调试器教程[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有谁知道一个好的初学者教程 在 C 中使用调试器 我感觉自己好像错过了很多 我知道怎么做 单步执行代码并查看局部变量 虽然这常常给我带来问
  • 在c#中执行Redis控制台命令

    我需要从 Redis 控制台获取 客户端列表 输出以在我的 C 应用程序中使用 有没有办法使用 ConnectionMultiplexer 执行该命令 或者是否有内置方法可以查找该信息 CLIENT LIST是 服务器 命令 而不是 数据库
  • C++ 是否可以在 MacOS 上与 OpenMP 和 boost 兼容?

    我现在已经尝试了很多事情并得出了一些结论 也许 我监督了一些事情 但似乎我无法完成我想要的事情 问题是 是否有可能使用 OpenMP 和 boost 在 MacOS High Sierra 上编译 C 一些发现 如果我错了请纠正我 Open
  • IdentityServer 4 对它的工作原理感到困惑

    我阅读和观看了很多有关 Identity Server 4 的内容 但我仍然对它有点困惑 因为似乎有很多移动部件 我现在明白这是一个单独的项目 它处理用户身份验证 我仍然不明白的是用户如何注册它 谁存储用户名 密码 我打算进行此设置 Rea
  • 为什么在 WebApi 上下文中在 using 块中使用 HttpClient 是错误的?

    那么 问题是为什么在 using 块中使用 HttpClient 是错误的 但在 WebApi 上下文中呢 我一直在读这篇文章不要阻止异步代码 https blog stephencleary com 2012 07 dont block
  • 从客户端访问 DomainService 中的自定义对象

    我正在使用域服务从 Silverlight 客户端的数据库中获取数据 在DomainService1 cs中 我添加了以下内容 EnableClientAccess public class Product public int produ
  • unordered_map 中字符串的 C++ 哈希函数

    看起来 C 标准库中没有字符串的哈希函数 这是真的 在任何 c 编译器上使用字符串作为 unordered map 中的键的工作示例是什么 C STL提供模板专业化 http en cppreference com w cpp string
  • 使用 GCP 的数据存储区时如何区分代码是在模拟器中运行还是在 GKE 中运行

    按照中给出的说明进行操作后 我不确定是否遗漏了任何内容https cloud google com datastore docs tools datastore emulator https cloud google com datasto
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • 告诉 Nancy 将枚举序列化为字符串

    Nancy 默认情况下在生成 JSON 响应时将枚举序列化为整数 我需要将枚举序列化为字符串 有一种方法可以通过创建来自定义 Nancy 的 JSON 序列化JavaScript 原始转换器 https github com NancyFx
  • 使用valgrind进行GDB远程调试

    如果我使用远程调试gdb我连接到gdbserver using target remote host 2345 如果我使用 valgrind 和 gdb 调试内存错误 以中断无效内存访问 我会使用 target remote vgdb 启动
  • 在视口中查找 WPF 控件

    Updated 这可能是一个简单或复杂的问题 但在 wpf 中 我有一个列表框 我用一个填充数据模板从列表中 有没有办法找出特定的数据模板项位于视口中 即我已滚动到其位置并且可以查看 目前我连接到了 listbox ScrollChange
  • 在 NaN 情况下 to_string() 可以返回什么

    我使用 VS 2012 遇到了非常令人恼火的行为 有时我的浮点数是 NaN auto dbgHelp std to string myFloat dbgHelp最终包含5008角色 你不能发明这个东西 其中大部分为0 最终结果是 0 INF
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • 在 Windows Phone silverlight 8.1 上接收 WNS 推送通知

    我有 Windows Phone 8 1 silverlight 应用程序 我想使用新框架 WNS 接收通知 我在 package appxmanifest 中有
  • 我可以在“字节数”设置为零的情况下调用 memcpy() 和 memmove() 吗?

    当我实际上没有什么可以移动 复制的时候 我是否需要处理这些情况memmove memcpy 作为边缘情况 int numberOfBytes if numberOfBytes 0 memmove dest source numberOfBy
  • 不区分大小写的字符串比较 C++ [重复]

    这个问题在这里已经有答案了 我知道有一些方法可以进行忽略大小写的比较 其中涉及遍历字符串或一个good one https stackoverflow com questions 11635 case insensitive string

随机推荐

  • jdk1.8接口

    在1 8版本之前 接口中的常量必须复制 且接口中的方法都是抽象方法 public interface Bird int a 这里会报错 因为常量必须赋值才行 int b 10 void shout1 这里报错 因为抽象方法没有方法体 voi
  • KMP算法最浅显理解

    角色 甲 abbaabbaaba 乙 abbaaba 乙对甲说 帮忙找一下我在你的哪个位置 甲从头开始与乙一一比较 发现第 7 个字符不匹配 要是在往常 甲会回退到自己的第 2 个字符 乙则回退到自己的开头 然后两人开始重新比较 这样的事情
  • 加密世界的价值捕获:谁是超级捕获者?

    来源 蓝狐笔记 麦田的收获者 梵高 加密世界还很早期 整个行业都还处于构建的初级阶段 在这种情况下 有哪些赛道正在捕获价值 捕获价值的量级有多大 蓝狐笔记简要梳理一下加密行业的整体价值捕获情况 从中窥见加密行业不同赛道的价值捕获现状 尤其是
  • Gradle史上最详细解析

    转自 http www cnblogs com wxishang1991 p 5532006 html 前言 对于Android工程师来说编译 打包等问题立即就成痛点了 一个APP有多个版本 Release版 Debug版 Test版 甚至
  • 计算机提示xinput1_4.dll丢失的解决方法,哪种更值得推荐

    最近我在使用某个游戏时遇到了一个问题 就是出现了xinput1 4 dll文件缺失的错误 这个错误让我无法正常启动游戏 让我感到非常困扰和沮丧 经过一番努力 我终于成功修复了这个问题 也总结了一些解决方法 大家可以对比一下哪种更值得推荐 x
  • react 属性验证与默认属性

    类组件属性验证与默认属性 通过static定义类的属性 属性验证可以引入模板自带的prop types来进行类型判断 当然你也可以自己写一个类型判断的方法 然后对类的propTypes属性进行类型编写 propTypes 这个属性名不可自定
  • 【AWS实验】 使用 Lake Formation 设置数据湖

    文章目录 实验概览 目标 实验环境 任务 1 探索实验环境 任务 1 1 在 S3 存储桶中创建文件夹 任务 1 2 加载 AWS Cloud9 IDE 任务 1 3 将数据复制到 S3 存储桶 任务 2 设置 AWS Lake Forma
  • jq的ajax里面的datagrid,详解jquery easyui之datagrid使用参考

    本文介绍了jquery easyui之datagrid使用 具体如下 创建datagrid 在页面上添加一个div或table标签 然后用jquery获取这个标签 并初始化一个datagrid 代码如下 页面上的div标签 js代码 mag
  • ES配置与使用

    一 单机版安装 地址 www elastic co 下载tar格式 或者复制链接 wget url下载 启动 bin elasticsearch 二 插件 解决页面问题 GitHub下载 elasticsearch head 需要node环
  • RISC-V新进展!deepin 成功适配VisionFive 2

    RISC V指令集是基于精简指令集计算 RISC 原理建立的开放指令集架构 ISA RISC V则是在指令集不断发展和成熟的基础上建立的全新指令 RISC V指令集完全开源 设计简单 拥有模块化的设计 完整的工具链 易于移植Unix系统 以
  • WebService+Rxjava

    最近公司有了个新项目 是之前有个项目需要迭代 由于这个项目比较老 所以用的是WebService的接口 我之前都是写的是restful的接口 没有接触过WebServiece 看到之前的代码我也有点闷逼 于是就花了几天去研究了下WebSer
  • 补码乘法,补码乘法计算详细解说

    1 补码与真值得转换公式 补码乘法因符号位参与运算 可以完成补码数的 直接 乘法 而不需要求补级 这种直接的方法排除了较慢的对2求补操作 因而大大加速了乘法过程 首先说明与直接的补码乘法相联系数学特征 对于计算补码数的数值来说 一种较好的表
  • CMake 学习笔记(子目录 续)

    这篇博客接着上篇 我们的目录结构和上一个例子完全相同 CMakeLists txt MathFunctions CMakeLists txt MathFunctions cxx MathFunctions h mysqrt cxx mysq
  • STM32的Bootloader实现和遇到的情况

    目录 0 概述 1 keil设置 2 IAP跳转函数 3 APP重定向中断向量表 3 1 标准库 3 2 HAL库 4 一些小问题 4 1 从IAP跳转到APP后运行异常 4 2 没有SCB gt VTOR设置中断向量表 0 概述 实际中通
  • opencv---曲线断点检测(八邻域断点检测)

    前言 该方法适用于激光照射的背景图像 没有交叉 仅限一条曲线断裂检测 原始图像 原始图像越干净 简单 检测效果越好 原始图像越干净 简单 检测效果越好 原始图像越干净 简单 检测效果越好 原始图像越干净 简单 检测效果越好 预处理 很重要
  • Java怎么设置代理ip

    在Java中设置代理IP可以通过使用Java系统属性来实现 具体步骤如下 1 设置代理地址和端口号 System setProperty https proxyHost 代理地址 System setProperty https proxy
  • vue3-vite使用lib-flexible(amfe-flexible)总结

    创建完vue3项目也安装了flexible插件页面就是不转化rem 搞了好久才发现还要另外配置文件 记录一下 安装插件 安装postcss pxtorem npm install postcss pxtorem save dev 安装lib
  • Arduino ESP32和ESP8266开发板安装教程

    视频教程链接 https www bilibili com video BV1dT411G7XX 1 安装第三方Arduino Package 下面以安装ESP32和ESP8266为示例 方式1 在线安装 第1步 打开ArduinoIDE
  • window配置weex项目的android studio环境

    weex 虽然做的是前端的工作但是越往后面觉的如果不会一门移动端的框架是多么的无力 于是就开始了之前非常看好的weex框架 该框架起初是由阿里巴巴内部开源的 后面移交给apache成长历程可谓是一波三折 和react native比起来有些
  • 第十二届蓝桥杯省赛B组(C/C++)试题G砝码称重

    题目 原题链接 问题描述 有一架天平和 n 1 n 100 n 1 leq n l