UVA 11137 Ingenuous Cubrency(完全背包)

来源:互联网 发布:日事清写 软件 编辑:程序博客网 时间:2024/06/02 21:13
题意:
有1^3, 2^3, ...... , 21^3 种货币,给定一个价钱n,问有多少种组合方法。

解析:

完全背包问题,公式:dp[j + coin[i]] += dp[j];

#include <cstdio>#include <cstring>using namespace std;typedef long long ll;const int N = 20000;int coin[25];ll dp[N];int main() {for(int i = 1; i <= 21; i++) {coin[i] = i * i * i;}memset(dp,0,sizeof(dp));dp[0] = 1;for(int i = 1; i <= 21; i++) {for(int j = 0; j < 10005; j++) {dp[j + coin[i]] += dp[j];}}int n;while(scanf("%d",&n) != EOF) {printf("%lld\n",dp[n]);}return 0;}


0 0
原创粉丝点击