http://acm.hdu.edu.cn/showproblem.php?pid=2069
#include<iostream>
using namespace std
;
int dp
[251][101];
int type
[5] = { 1, 5, 10, 25, 50 };
void solve(){
dp
[0][0] = 1;
for (int i
= 0; i
< 5; i
++){
for (int j
= 1; j
<= 100; j
++){
for (int k
= type
[i
]; k
<= 250; k
++){
dp
[k
][j
] += dp
[k
- type
[i
]][j
- 1];
}
}
}
}
int main(){
int s
;
int ans
[251] = {0};
solve();
for (int i
= 0; i
<= 250; i
++){
for (int j
= 0; j
<= 100; j
++){
ans
[i
] += dp
[i
][j
];
}
}
while (cin
>> s
){
cout
<< ans
[s
] << endl
;
}
return 0;
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-22194.html