完全背包的简单变形,秒杀。
代码如下:
/*
ID:15674811
LANG:C++
PROG:money
*/
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<fstream>
using namespace std;
int main()
{
ofstream fout("money.out");
ifstream fin("money.in");
//ifstream fin("lkl.txt");
int a[30];
long long dp[11000];
int n,V;
while(fin>>n>>V)
{
for(int i=1;i<=n;i++)
fin>>a[i];
memset(dp,0,sizeof(dp));
dp[0]=1;
for(int i=1;i<=n;i++)
for(int k=a[i];k<=V;k++)
{
dp[k]+=dp[k-a[i]];
}
fout<<dp[V]<<endl;
}
return 0;
}
原文:http://blog.csdn.net/acm_lkl/article/details/44596439