蓝桥杯 砝码称重

简介: 蓝桥杯 砝码称重

砝码称重


#include <bits/stdc++.h>
using namespace std;
int N;
vector<int> weight(105);
vector<int> dp(100005);
int main()
{
    cin >> N;
    int sum = 0;
    for (int i = 0; i < N; i++)
    {
        cin >> weight[i];
        sum += weight[i];
    }
    dp[0] = 1;
    for (int i = 0; i < N; i++)
    {
        for (int j = sum; j >= weight[i]; j--)
        {
            dp[j] = max(dp[j], dp[j - weight[i]]);
        }
    }
    for (int i = 0; i < N; i++)
    {
        for (int j = 1; j <= sum; j++)
        {
            dp[j] = max(dp[j], dp[j + weight[i]]);
        }
    }
    int res = 0;
    for (int i = 1; i <= sum; i++)
    {
        if (dp[i] > 0)
        {
            res++;
        }
    }
    cout << res;
    return 0;
}
目录
相关文章
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-936 砝码称重
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-936 砝码称重
53 0
|
测试技术 C++
第十二届蓝桥杯省赛 C++ B组 - 砝码称重
第十二届蓝桥杯省赛 C++ B组 - 砝码称重
120 0
|
测试技术
蓝桥杯2021年第十二届省赛真题-砝码称重(动态规划)
蓝桥杯2021年第十二届省赛真题-砝码称重(动态规划)
|
Java 测试技术
蓝桥杯(java砝码称重)
你有一架天平和 N 个砝码,这N 个砝码重量依次是 1,2,⋅⋅⋅,W1,W2,⋅⋅⋅,WN。 请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边。
76 0
|
机器学习/深度学习 Python
【l蓝桥杯】砝码称重python
【l蓝桥杯】砝码称重python
172 0
|
索引 Python
Python蓝桥杯真题——砝码称重
Python蓝桥杯真题——砝码称重
167 0
|
6月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
79 1
|
6月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
107 0
|
6月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
82 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
83 0