标签:namespace 方案 bit 换零钱 span nbsp end blog mod
题目:
思路:
for(int i = 0;i < 13; i++){ for(int j = a[i];j <= n; j++){ dp[j] = (dp[j] + dp[j-a[i]])%mod; } }
a[i]:第i种硬币的面额。
dp[j]表示有前i种硬币,要求面额为j时,有多少种方案。
dp[j] = (dp[j] + dp[j-a[i]])%mod;
不装的情况+装的情况
代码:
#include <bits\stdc++.h> using namespace std; const int mod = 1e9+7; int a[13] = {1,2,5,10,20,50,100,200,500,1000,2000,5000,10000}; int dp[100010]; int main(){ int n; cin >> n; dp[0] = 1; for(int i = 0;i < 13; i++){ for(int j = a[i];j <= n; j++){ dp[j] = (dp[j] + dp[j-a[i]])%mod; } } cout << dp[n] << endl; return 0; }
标签:namespace 方案 bit 换零钱 span nbsp end blog mod
原文地址:http://www.cnblogs.com/zhangjiuding/p/7648649.html