51nod 1011 【完全背包】
2016-10-29 22:29
211 查看
完全背包的变形;
这些数字可以取多次,dp[i]代表前 i 物品组成N时的方案数。
#include<iostream>
#include<cstring>
#include<string>
#include<cmath>
#include<cstdio>
#include<map>
#include<vector>
#include<queue>
using namespace std;
typedef long long LL;
const int mod=1e9+7;
int w[13]={1,2,5,10,20,50,100,200,500,1000,2000,5000,10000};
LL dp[100010];
void init()
{
dp[0]=1;
for(int i=0;i<13;i++)
{
for(int j=w[i];j<=100000;j++)
{
if(dp[j-w[i]])
dp[j]=(dp[j]+dp[j-w[i]])%mod;
}
}
}
int main()
{
init();
int n;
scanf("%d",&n);
printf("%lld\n",dp
);
return 0;
}
这些数字可以取多次,dp[i]代表前 i 物品组成N时的方案数。
#include<iostream>
#include<cstring>
#include<string>
#include<cmath>
#include<cstdio>
#include<map>
#include<vector>
#include<queue>
using namespace std;
typedef long long LL;
const int mod=1e9+7;
int w[13]={1,2,5,10,20,50,100,200,500,1000,2000,5000,10000};
LL dp[100010];
void init()
{
dp[0]=1;
for(int i=0;i<13;i++)
{
for(int j=w[i];j<=100000;j++)
{
if(dp[j-w[i]])
dp[j]=(dp[j]+dp[j-w[i]])%mod;
}
}
}
int main()
{
init();
int n;
scanf("%d",&n);
printf("%lld\n",dp
);
return 0;
}
相关文章推荐
- 51nod 1101 换零钱 完全背包的变型 动态规划
- 51nod 1101 换零钱 完全背包
- 51nod 1101 换零钱 (完全背包)
- 51nod 1101 换零钱 完全背包计数
- 【51Nod】1101 - 换零钱(完全背包)
- 完全背包模板 51Nod 1101
- 51nod 1101 完全背包
- 杭电ACM OJ 1011 Starship Troopers 树的动态规划(树的dp)经典树形背包 java写的 包看懂 递归流程完全解析
- 完全背包(背包九讲)
- NYOJ 311 完全背包
- hdu Piggy-Bank(完全背包)
- hdu 6082 度度熊与邪恶大魔王(完全背包)
- hdu 1963 Investment(完全背包)
- POJ1384 Piggy-Bank (完全背包)
- nyoj 完全背包
- hdoj 5185 Equation (线性dp 完全背包)
- DP+01背包 完全背包
- HDU 1011 (树背包)
- 【算法系列学习】[kuangbin带你飞]专题十二 基础DP1 F - Piggy-Bank 【完全背包问题】
- nyoj 311完全背包