【NOIP2012普及组】摆花 (递推)
2016-08-01 15:41
211 查看
这是一道递推的题,f(i,j)前i种花放前j个位置。
f(i,j)=f(i-1,j)+f(i-1,j-1)……..+f(i-1,j-min(a[i],j)).
其实就是枚举现在第i种花放几盆,最多能放min(a[i],j)盆。然后剩下的放前i-1种花。有了递推方程,剩下的就是填表了。
详细代码如下:
#include<cstdio> #include<cstdlib> #include<iostream> using namespace std; const int maxn=105; const int mod=1000007; int a[maxn],n,m,d[maxn][maxn]={0}; void work() { d[0][0]=1; for(int i=1;i<=n;i++) for(int j=0;j<=m;j++) for(int k=0;k<=a[i]&&k<=j;k++) { d[i][j]=(d[i][j]+d[i-1][j-k])%mod; } cout<<d [m]; } int main() { //freopen("flower.in","r",stdin); //freopen("flower.out","w",stdout); scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&a[i]); work(); return 0; }
相关文章推荐
- NOIP 2012 - 普及组 摆花 递推 重庆一中高2018级竞赛班第六次测试 2016.7.31 Problem 3
- 【NOIP2012普及组】摆花(递推)
- 洛谷P1077 [NOIP2012普及组]摆花 [2017年四月计划 动态规划14]
- (2050): 【NOIP2012普及组】摆花
- 摆花(2012Noip普及组第3题)
- 摆花 NOIP2012普及
- Codevs 1315 摆花 ——2012年NOIP全国联赛普及组 dp递推
- NOIP2012普及组-摆花
- [Noip2012普及组]摆花
- [普及] NOIP 2012 摆花
- NOIP2012 普及组 T3 摆花——S.B.S.
- [NOIP2012普及组]摆花
- 【NOIP2012普及】摆花
- NOIP2012普及组 摆花(重庆一中高2018级信息学竞赛测验6) 解题报告
- 【NOIP2012普及组】摆花
- C. 【NOIP2012普及组真题】 摆花
- Cpp环境【NOIP2012普及组】【Vijos1792】摆花
- 【noip2012普及】摆花
- NOIP2012普及组 T3 摆花(加强版)
- Noip2012 普及组 第三题 摆花