题解 | 称砝码

称砝码

https://www.nowcoder.com/practice/f9a4c19050fc477e9e27eb75f3bfd49c

由于砝码的种类数较少,每种砝码的数量也不大,可以使用“暴力”方法来枚举所有可能的重量。

首先,使用一个 map<int, int, greater<int>>(或其他合适的数据结构)记录当前可以到达的重量集合,初始时包含重量 0。

这里使用 greater 是因为方便我直接使用 auto 进行从大到小的遍历,如果从小到大就变成完全背包了

对于第 i 种砝码,数量为 x[i],其重量为 m[i]。我们将它能够产生的新重量全部加入现有集合中,即:在当前所有可行重量基础上,累加 m[i] 一次,直到累加 x[i] 次,得到所有新的可行重量。

每次生成的新重量,都要并入已有集合(即合并到 mp)中。

最终,mp 中记录了所有可以用砝码组合得到的重量(包括 0)。mp.size() 即为不同重量的总数

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e5 + 5;
int __t = 1, n, m, x;
void solve() {
    cin >> n;
    map<int, int, greater<int>> mp;
    mp[0] = 1;
    vector<int> m(n), x(n);
    for (int i = 0; i < n; i++)
        cin >> m[i];
    for (int i = 0; i < n; i++)
        cin >> x[i];
    for (int i = 0; i < n; i++)
        for (int j = 1; j <= x[i]; j++) {
            map<int, int, greater<int>> dmp;
            for (auto [k, v] : mp)
                dmp[k + m[i]] = 1;
            for (auto [k, v] : dmp)
                mp[k] = 1;
        }
    cout << mp.size() << '\n';
    return;
}
int32_t main() {
#ifdef ONLINE_JUDGE
    ios::sync_with_stdio(false);
    cin.tie(0);
#endif
    // cin >> __t;
    while (__t--)
        solve();
    return 0;
}

 每日一题攒牛币,大厂offer不是梦,点我马上开始赚牛币

#牛客春招刷题训练营#

全部评论

相关推荐

点赞 评论 收藏
分享
03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
5652次浏览 53人参与
# 你的实习产出是真实的还是包装的? #
1171次浏览 29人参与
# 米连集团26产品管培生项目 #
4377次浏览 203人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
6964次浏览 37人参与
# 简历第一个项目做什么 #
31275次浏览 314人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186406次浏览 1115人参与
# MiniMax求职进展汇总 #
23068次浏览 299人参与
# 研究所笔面经互助 #
118765次浏览 577人参与
# 面试紧张时你会有什么表现? #
30406次浏览 188人参与
# 简历中的项目经历要怎么写? #
309439次浏览 4157人参与
# AI时代,哪些岗位最容易被淘汰 #
62538次浏览 736人参与
# 网易游戏笔试 #
6329次浏览 83人参与
# 职能管理面试记录 #
10703次浏览 59人参与
# 把自己当AI,现在最消耗你token的问题是什么? #
6902次浏览 154人参与
# 从哪些方向判断这个offer值不值得去? #
56709次浏览 357人参与
# 你怎么看待AI面试 #
179317次浏览 1170人参与
# 腾讯音乐求职进展汇总 #
160406次浏览 1105人参与
# 小红书求职进展汇总 #
226861次浏览 1356人参与
# 正在春招的你,也参与了去年秋招吗? #
362594次浏览 2631人参与
# 你的房租占工资的比例是多少? #
92128次浏览 896人参与
# 校招笔试 #
466773次浏览 2952人参与
# 机械求职避坑tips #
94402次浏览 567人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务