当前位置: 首页 > article >正文

蓝桥杯1447 砝码称重

问题描述

你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W1,W2,⋅⋅⋅,WN​。

请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边。

输入格式

输入的第一行包含一个整数 N。

第二行包含 N 个整数:W1,W2,W3,⋅⋅⋅,WN​。

输出格式

输出一个整数代表答案。

样例输入

3
1 4 6

样例输出

10

样例说明

能称出的 10 种重量是:1、2、3、4、5、6、7、9、10、11。

1=1;

2=6−4(天平一边放 6,另一边放 4);​

3=4−1;

4=4;

5=6−1;

6=6;

7=1+6;

9=4+6−1;

10=4+6;

11=1+4+6。

评测用例规模与约定

对于 50的评测用例,1≤N≤15。

对于所有评测用例,1≤N≤100,N1≤N≤100,N​个砝码总重不超过 100000。

 

 

#include<iostream>
#include<cmath>
using namespace std;const int N = 110;
const int M = 2e5+10;  //j的范围是 [-m, m],M为最大可能重量的两倍
int n;
int m;  //总重量
int w[N];
bool f[N][M];  //f[i][j]:前i个砝码能否称出重量j
int ans;int main()
{cin>>n;for(int i=1; i<=n; ++i){cin>>w[i];m += w[i];}f[0][0]=1;  //初始化:0个砝码称出0//枚举前i个砝码for(int i=1; i<=n; ++i){//枚举所有可能的重量for(int j=0; j<=m; ++j){//不选当前砝码 || 选砝码放到左盘 || 选砝码放到右盘f[i][j]=f[i-1][j] || f[i-1][abs(j-w[i])] || f[i-1][j+w[i]];}}for(int i=1; i<=m; ++i){if(f[n][i]) ans++;}cout<<ans;return 0;
}
http://www.lryc.cn/news/2383821.html

相关文章:

  • 腾讯2025年校招笔试真题手撕(三)
  • 怎样通过神经网络估计股票走向
  • 【RocketMQ 生产者和消费者】- 生产者启动源码-上报生产者和消费者心跳信息到 broker(3)
  • Python----循环神经网络(Word2Vec的优化)
  • Simon J.D. Prince《Understanding Deep Learning》
  • 开搞:第四个微信小程序:图上县志
  • 模型评估与调优(PyTorch)
  • sockaddr结构体详解
  • Seata源码—7.Seata TCC模式的事务处理一
  • 【语法】C++的map/set
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Live View Kit (3)
  • vue vite textarea标签按下Shift+Enter 换行输入,只按Enter则提交的实现思路
  • MySQL多线程备份工具mysqlpump详解!
  • 创建信任所有证书的HttpClient:Java 实现 HTTPS 接口调用,等效于curl -k
  • Redisson分布式集合原理及应用
  • 深入理解 PlaNet(Deep Planning Network):基于python从零实现
  • 精益数据分析(75/126):用户反馈的科学解读与试验驱动迭代——Rally的双向验证方法论
  • 仿腾讯会议——视频发送接收
  • 从3.7V/5V到7.4V,FP6291在应急供电智能门锁中的应用
  • java后端-海外登录(谷歌/FaceBook)
  • 【人工智障生成日记1】从零开始训练本地小语言模型
  • Selenium-Java版(frame切换/窗口切换)
  • 一文深度解析:Pump 与 PumpSwap 的协议机制与技术差异
  • 星云智控v1.0.0产品发布会圆满举行:以创新技术重构物联网监控新生态
  • SpringBoot(一)--- Maven基础
  • 基于FPGA控制电容阵列与最小反射算法的差分探头优化设计
  • kakfa 基本了解
  • 基于Browser Use + Playwright 实现AI Agent操作Web UI自动化
  • Origin绘制多因子柱状点线图
  • Web漏洞扫描服务的特点与优势:守护数字时代的安全防线