Acwing-278-数字组合(背包)

Posted ydddd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Acwing-278-数字组合(背包)相关的知识,希望对你有一定的参考价值。

链接:

https://www.acwing.com/problem/content/280/

题意:

给定N个正整数A1,A2,…,AN,从中选出若干个数,使它们的和为M,求有多少种选择方案。

思路:

背包.

代码:

#include <bits/stdc++.h>
using namespace std;

int a[110], Dp[10010];
int n, m;

int main()

    scanf("%d%d", &n, &m);
    for (int i = 1;i <= n;i++)
        scanf("%d", &a[i]);
    Dp[0] = 1;
    for (int i = 1;i <= n;i++)
    
        for (int j = m;j >= a[i];j--)
            Dp[j] += Dp[j-a[i]];
    
    printf("%d\n", Dp[m]);

    return 0;

以上是关于Acwing-278-数字组合(背包)的主要内容,如果未能解决你的问题,请参考以下文章

DP 类型题一 (模型:数字三角形+最长上升子序列+背包)

DP 类型题一 (模型:数字三角形+最长上升子序列+背包)

AcWing 900. 整数划分(完全背包计数问题)

TYVJ1096 数字组合 - 背包DP[01背包]

背包问题 codevs2210 数字组合

CH5201 数组组合01背包