题目:
链接:点击打开链接
算法:
完全背包。
状态转移方程: dp[j] += dp[j-i];dp[j]表示钱j可以兑换的方法,,,,,i是硬币的价值1,2,3,,,个数是不限的
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int dp[40000];
int n;
int main()
{
while(cin>>n)
{
memset(dp,0,sizeof(dp));
dp[0] = 1;
for(int i=1; i<=3; i++)
{
for(int j=i; j<=n; j++)
{
dp[j] += dp[j-i];
}
}
cout<<dp[n]<<endl;
}
return 0;
}