|Vijos|NOIP2012|动态规划|P1792 摆花
2016-08-27 12:14
190 查看
https://vijos.org/p/1792
多重背包方案数变形题
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#include<cstdlib>
#define ms(i,j) memset(i,j,sizeof(i));
using namespace std;
const int maxn = 100 + 5;
int n,m;
int a[maxn];
int f[maxn];
int main()
{
scanf("%d%d", &n, &m);
for (int i=1;i<=n;i++)
{
scanf("%d", &a[i]);
}
ms(f,0);f[0] = 1;
for (int i=1;i<=n;i++)
for (int j=m;j>=0;j--)
for (int k=1;k<=a[i];k++)
{
if (j-k>=0) f[j] = (f[j]+f[j-k])%1000007;
}
printf("%d\n", f[m]%1000007);
return 0;
}
多重背包方案数变形题
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#include<cstdlib>
#define ms(i,j) memset(i,j,sizeof(i));
using namespace std;
const int maxn = 100 + 5;
int n,m;
int a[maxn];
int f[maxn];
int main()
{
scanf("%d%d", &n, &m);
for (int i=1;i<=n;i++)
{
scanf("%d", &a[i]);
}
ms(f,0);f[0] = 1;
for (int i=1;i<=n;i++)
for (int j=m;j>=0;j--)
for (int k=1;k<=a[i];k++)
{
if (j-k>=0) f[j] = (f[j]+f[j-k])%1000007;
}
printf("%d\n", f[m]%1000007);
return 0;
}
相关文章推荐
- noip2012 摆花 (动态规划)
- 【动态规划】[NOIP2012]摆花
- [NOIP2012][vijos1792]摆花(dp)
- [NOIP2012][VIJOS1792][YZOJ2150]摆花
- Vijos P1792 摆花(动态规划,背包)
- 洛谷P1077 [NOIP2012普及组]摆花 [2017年四月计划 动态规划14]
- Cpp环境【NOIP2012普及组】【Vijos1792】摆花
- Noip2012 普及组 第三题 摆花
- vijos P1780 【NOIP2012】 开车旅行
- |Vijos|NOIP2002|动态规划|P1121 马拦过河卒
- 【noip2012普及】摆花
- [NOIP2012普及组]摆花
- vijos1782——借教室(noip2012)
- Cpp环境【NOIP2012模拟题】【Vijos3013】拦截匪徒
- NOIP2012摆花
- NOIP2012 普及组 T3 摆花——S.B.S.
- 【动态规划】Vijos P1104 采药(NOIP2005普及组第三题)
- (2050): 【NOIP2012普及组】摆花
- 【NOIP2012普及组】摆花 (递推)
- NOIP2012普及组 T3 摆花(加强版)