Codevs 1315 摆花
2017-09-24 08:08
288 查看
题目:
http://codevs.cn/problem/1315/
题解:
dp[i][j]表示在前i中花里选择了j盆的方案数;
由dp[i-1][j-k]递推累加而来,其中0<=k<=a[i],k为枚举第i种花选了多少盆;
看到网上有题解说是多重背包的方案数,,不是很懂。。。
代码:
http://codevs.cn/problem/1315/
题解:
dp[i][j]表示在前i中花里选择了j盆的方案数;
由dp[i-1][j-k]递推累加而来,其中0<=k<=a[i],k为枚举第i种花选了多少盆;
看到网上有题解说是多重背包的方案数,,不是很懂。。。
代码:
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int p=1000007; int m,n,a[300]; long long dp[305][300]; int main(){ scanf("%d%d",&m,&n); for(int i=1;i<=m;i++) scanf("%d",&a[i]); for(int i=0;i<=a[1];i++) dp[1][i]=1; for(int i=1;i<=m;i++) dp[i][0]=1; for(int i=2;i<=m;i++) for(int j=1;j<=n;j++) for(int k=0;k<=a[i];k++) dp[i][j]=(dp[i][j]%p+dp[i-1][j-k]%p)%p; printf("%d",dp[m] ); }
相关文章推荐
- Codevs 1315 摆花 ——2012年NOIP全国联赛普及组 dp递推
- codevs 1315 摆花 (DP)
- 【codevs1315】摆花 DP
- code vs 1315 摆花 (dp)
- [codevs1315]摆花
- codevs 摆花
- 【NOIP2015】信息传递 CODE[VS] 4511
- CODEVS 1068 乌龟棋
- 联合权值(codevs 3728)
- vscode实现markdown流程图
- codevs1250 Fibonacci数列
- [codevs3044]矩形面积求并(线段树+扫描线)
- CODEVS——T 1005 生日礼物
- Codevs 4189 字典(字典树Trie)
- codevs 1059 汽车装油
- codevs 1008 选数 dfs
- Codevs 1507 酒厂选址
- CODEVS3037 线段覆盖 5[序列DP 二分]
- 【CodeVS2039】骑马修栅栏
- codevs 1060 搞笑运动会 概率dp