完全背包问题。。。
状态转移方程:
开个坑先。。。
代码如下:
#include<iostream>
#include<algorithm>
using namespace std;
int n;
int money[4] = { 10,20,50,100 };
int dp[1001] = { 0 };
//完全背包
void findans() {
for (int i = 0; i <= n; i += 10) dp[i] = 1;
for (int i = 1; i < 4; ++i) {
for (int j = money[i]; j <= n; j += 10) dp[j] += dp[j - money[i]];
}
cout << (n == 0 ? 0 : dp[n]) << endl;
}
int main(){
cin >> n;
findans();
return 0;
}