首页 > 其他分享 >【洛谷 8742】[蓝桥杯 2021 省 AB] 砝码称重

【洛谷 8742】[蓝桥杯 2021 省 AB] 砝码称重

时间:2023-10-25 16:34:24浏览次数:38  
标签:10 AB 洛谷 int 蓝桥 砝码 include dp

题目描述

你有一架天平和 �N 个砝码, 这 �N 个砝码重量依次是 �1,�2,⋯ ,��W1​,W2​,⋯,WN​ 。 请你计算一共可以称出多少种不同的重量?

注意砝码可以放在天平两边。

输入格式

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

第二行包含 �N 个整数: �1,�2,�3,⋯ ,��W1​,W2​,W3​,⋯,WN​ 。

输出格式

输出一个整数代表答案。

输入输出样例

输入 #1
3
1 4 6
输出 #1
10

说明/提示

【样例说明】

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

1=12=6−4( 天平一边放 6, 另一边放 4) 3=4−14=45=6−16=67=1+69=4+6−110=4+611=1+4+6​1=12=6−4( 天平一边放 6, 另一边放 4) 3=4−14=45=6−16=67=1+69=4+6−110=4+611=1+4+6​

【评测用例规模与约定】

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

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

蓝桥杯 2021 第一轮省赛 A 组 F 题(B 组 G 题)。

 

题解:01背包的变形,统计答案即可

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<bits/stdc++.h>
using namespace std;
int n,sum,ans;
int a[103],dp[10000003];
int main(){
    freopen("2347.in","r",stdin);
    freopen("2347.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]);
        sum+=a[i];
    }
    dp[0]=1; 
    for(int i=1;i<=n;i++)
        for(int j=sum;j>=a[i];j--)
            if(dp[j-a[i]] && !dp[j]) 
               { dp[j]=1; ans++; }
    //若j-a[i]存在,则j一定存在,由j-a[i]加上一个a[i]砝码得来  
    for(int i=1;i<=n;i++)
        for(int j=1;j<=sum-a[i];j++)
            if(dp[j+a[i]] && !dp[j]) 
               { dp[j]=1; ans++; }
    //若j+a[i]存在,则j一定存在,由j+a[i]减去一个a[i]砝码得来 
    printf("%d",ans);
    return 0;
}

 

标签:10,AB,洛谷,int,蓝桥,砝码,include,dp
From: https://www.cnblogs.com/wuhu-JJJ/p/17787523.html

相关文章

  • 【洛谷 2347】[NOIP1996 提高组] 砝码称重
    题目描述设有 1g1g、2g2g、3g3g、5g5g、10g10g、20g20g 的砝码各若干枚(其总重≤1000≤1000),可以表示成多少种重量?输入格式输入方式:�1,�2,�3,�4,�5,�6a1​,a2​,a3​,a4​,a5​,a6​(表示 1g1g 砝码有 �1a1​ 个,2g2g 砝码有 �2a2​ 个,…,20g20g 砝码有 �6a6​ 个)输出格式......
  • VS添加SunnyUI控件时报错:创建组件UILabel失败
    在引用中将sunnyui和sunnyui.common移除在引用中重新从本地引用上面两个dll文件......
  • 【洛谷 8601】 [蓝桥杯 2013 省 A] 剪格子
    #[蓝桥杯2013省A]剪格子##题目描述如图$1$所示,$3\times3$的格子中填写了一些整数。![](https://cdn.luogu.com.cn/upload/image_hosting/hsfjsi38.png)我们沿着图中的红色线剪开,得到两个部分,每个部分的数字和都是$60$。本题的要求就是请你编程判定:对给定的$m\tim......
  • Unity DOTS系列之Filter Baking Output与Prefab In Baking核心分析
     最近DOTS发布了正式的版本,我们来分享一下DOTS里面Baking核心机制,方便大家上手学习掌握UnityDOTS开发。今天给大家分享的Baking机制中的FilterBakingOutput与PrefabInBaking。FilterBakingOutput机制在默认情况下,Baking会为每个GameObject生成的Entity与Component,......
  • [ABC256E] Takahashi's Anguish
     题目 https://www.luogu.com.cn/problem/AT_abc256_e 图论题,是个环套树发现环上的边要取掉一条(min),其他的不用取https://www.luogu.com.cn/record/131488937......
  • windows安装rabbitMq
    这里安装的版本为erlang: V12.3rabbitMq:3.10.18注意:需要找对应的版本 下载与安装erlang原因:RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装RabbitMQ的前提是安装Erlang。下载地址:http://www.erlang.org/downloads  这里的otp显示26.1.2   双击启动,点n......
  • RabbitMQ简介和安装
    一、RabbitMQ是什么?RabbitMQ是用Erlang实现的一个高并发高可靠AMQP消息队列服务器。支持消息的持久化、事务、拥塞控制、负载均衡等特性,使得RabbitMQ拥有更加广泛的应用场景。RabbitMQ跟Erlang和AMQP有关。下面简单介绍一下Erlang和AMQP。Erlang是一门动态类型的函数式编程语言,它......
  • RabbitMQ通讯方式
    RabbitMQ提供了七种通讯方式,可以去官方查看:https://rabbitmq.com/getstarted.html一、RabbitMQ提供的通讯方式其中通讯方式如下:HelloWorld!:为了入门操作提供的方式Workqueues:一个队列被多个消费者消费Publish/Subscribe:手动创建Exchange(FANOUT)Routing:手动创建Exchange(DIRECT)Topi......
  • vue3 elementplus table表格内添加checkbox和行号
    1.仅添加复选框<el-table-columntype="selection"width="55"></el-table-column>2.添加复选框和文字行号在一列<el-table-column><template#header><el-checkboxv-model="selectAll"@change="han......
  • Java图片压缩遇到 "No suitable ImageReader found for source data."
     问题:使用压缩工具的时候突然遇到图片压缩失败的情况。此时检查一下要上传的图片是否正常。处理方式:检查图片数据是否异常,一个图片五六兆。图片虽然是JPG结尾的,但是不在“ ImageIO”类的支持范围内。例如 WebP图片虽然可以以JPG格式结尾,但是 “ ImageIO”类......