背包问题中求方案数
#include <iostream>
#include <cmath>
using namespace std;
const int N=1010;
int w[5];
int n,f[N];
int main()
{
cin >> n;
int cnt = 4;
w[1] = 10, w[2] = 20, w[3] = 50, w[4] = 100;
f[0]=1;
for(int i=1;i<=cnt;i++) //每种物品
{
for(int j=w[i];j<=n;j++) //价值
{
if(j>=w[i])
f[j]=(f[j]+f[j-w[i]]); // 如果可选就加上
}
}
cout<<f[n]<<endl;
return 0;
}