HJ41 称砝码

Powered by:NEFU AB-IN

Link

文章目录

HJ41 称砝码

题意

现有n种砝码,重量互不相等,分别为 m1,m2,m3...mn ;

每种砝码对应的数量为 x1,x2,x3...xn 。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。

思路

求给出的重量,通过排列组合,能求出多少不同的重量

可以采取set去重,一个set保存答案集合(初始放个0),遍历砝码,每次给答案集合的元素都加上砝码重量,set会自动去重

具体操作实现,可以再建一个set,用来保存上一次答案集合的状态,遍历这个set的元素,加上砝码重量,然后塞进答案集合中
*

代码

cpp 复制代码
#include <bits/stdc++.h>
#include <vector>
using namespace std;
#define int long long
#undef int

#define SZ(X) ((int)(X).size())
#define ALL(X) (X).begin(), (X).end()
#define IOS                                                                                                            \
    ios::sync_with_stdio(false);                                                                                       \
    cin.tie(nullptr);                                                                                                  \
    cout.tie(nullptr)
#define DEBUG(X) cout << #X << ": " << X << '\n'

const int N = 1e2 + 10, INF = 0x3f3f3f3f;

int a[N];
vector<int> v;
signed main()
{
    // freopen("Tests/input_1.txt", "r", stdin);
    IOS;

    set <int> s;

    int n;
    cin >> n;
    for(int i = 1; i <= n; ++i) cin >> a[i];

    for(int i = 1; i <= n; ++ i){
        int x;
        cin >> x;
        for(int j = 1; j <= x; ++ j) v.push_back(a[i]);
    }

    s.insert(0);
    for(auto i : v){
        set <int> tmp(s);
        for(auto k : tmp) s.insert(k + i);
    }

    cout << SZ(s);

    return 0;
}
相关推荐
Gauss松鼠会7 小时前
【GaussDB】GaussDB锁阻塞源头查询
java·开发语言·前端·数据库·算法·gaussdb·经验总结
oier_Asad.Chen7 小时前
【洛谷题解/AcWing题解】洛谷P4011 孤岛营救问题/AcWing1131拯救大兵瑞恩
数据结构·笔记·学习·算法·动态规划·图论·宽度优先
冻柠檬飞冰走茶8 小时前
PTA基础编程题目集 7-19 支票面额(C语言实现)
c语言·开发语言·数据结构·算法
船漏了就会沉8 小时前
状态压缩DP:小数据下的“暴力美学”
算法
你怎么知道我是队长8 小时前
计算机虚拟存储管理与页面置换算法详解
服务器·网络·算法
罗西的思考8 小时前
【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 — (14)— Teacher
人工智能·笔记·深度学习·算法·机器学习
塔能物联运维8 小时前
塔能两相液冷:600W/cm²极限能力,为下一代AI芯片预留充足散热余量
人工智能·算法·两相液冷
醉城夜风~9 小时前
手撕 C++ string:从零实现一个简易字符串类
开发语言·c++·算法
手写码匠9 小时前
华为云Flexus+DeepSeek征文|DeepSeek+RAG知识库实战:基于Flexus X实例与Dify构建企业级智能问答系统
人工智能·深度学习·算法·aigc
青山木9 小时前
Hot 100 --- 组合总和
java·数据结构·算法·leetcode