您的位置:首页 > 其它

51nod 1101 换零钱(dp)

2016-12-08 14:03 260 查看
题目链接:传送门

背包题

状态转移方程式 dp[i]=dp[i-coin[j]]+dp[i]%mod

其中coin[J]是1 2 5 10 20 50…i是总钱

代码如下:

#include <bits/stdc++.h>
using namespace std;
#define N 100100
#define mod 1000000007
#define inf 2000000000000000ll
int dp
;
int main(){
int i,j,n,m;
cin>>n;
int coin[14]={1,2,5,10,20,50,100,200,500,1000,2000,5000,10000};
memset(dp,0,sizeof(dp));
dp[0]=1;
for(j=0;j<13;j++){
for(i=coin[j];i<=n;i++)
dp[i]=(dp[i-coin[j]]%mod+dp[i])%mod;
}
cout<<dp
<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: