|NOIOJ|动态规划|2985:数字组合

http://noi.openjudge.cn/ch0206/2985/

简单01背包方案数问题

#include
#include
#include
#define ms(i,j) memset(i,j, sizeof i);
using namespace std;
int n,t;
int a[30];
int f[1005];
int main()
{
    scanf("%d%d", &n, &t);
    for (int i=1;i<=n;i++) scanf("%d", &a[i]);
    ms(f,0);
    f[0] = 1;
    for (int i=1;i<=n;i++)
    for (int j=t;j>=a[i];j--)
    {
        f[j] += f[j-a[i]];
    }
    printf("%d\n", f[t]);
    return 0;
}


你可能感兴趣的:(OpenJudge,Noi,动态规划,-,背包)