[Noip2012普及组]摆花
来源:互联网 发布:科学网 博弈 复杂网络 编辑:程序博客网 时间:2024/05/14 05:38
Description
小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 m 盆。通过调查顾客的喜好,小明列出了
顾客最喜欢的 n 种花,从 1 到 n 标号。为了在门口展出更多种花,规定第 i 种花不能超过 ai盆,摆花时同一
种花放在一起,且不同种类的花需按标号的从小到大的顺序依次摆列。试编程计算,一共有多少种不同的摆花方案
顾客最喜欢的 n 种花,从 1 到 n 标号。为了在门口展出更多种花,规定第 i 种花不能超过 ai盆,摆花时同一
种花放在一起,且不同种类的花需按标号的从小到大的顺序依次摆列。试编程计算,一共有多少种不同的摆花方案
Input
共 2 行。
第一行包含两个正整数 n 和 m,中间用一个空格隔开。
第二行有 n 个整数,每两个整数之间用一个空格隔开,依次表示 a1、a2、……an。
第一行包含两个正整数 n 和 m,中间用一个空格隔开。
第二行有 n 个整数,每两个整数之间用一个空格隔开,依次表示 a1、a2、……an。
Output
输出只有一行,一个整数,表示有多少种方案。
注意:因为方案数可能很多,请输出方案数对 1000007 取模的结果。
注意:因为方案数可能很多,请输出方案数对 1000007 取模的结果。
Sample Input
2 43 2
Sample Output
2
普及组难度一般的dp,详情见代码方程的含义是到第i种花,一共摆了j盆,第i种花摆k盆的方案总数
#include<cstdio>int f[101][101],n,m,a[101];int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&a[i]); f[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++) if(j>=k) f[i][j]=(f[i][j]+f[i-1][j-k])%1000007; printf("%d",f[n][m]);}
阅读全文
0 0
- 【NOIP2012普及组】摆花
- [NOIP2012普及组]摆花
- [Noip2012普及组]摆花
- NOIP2012普及组-摆花
- 【noip2012普及】摆花
- noip2012普及组 摆花(DP)
- (2050): 【NOIP2012普及组】摆花
- Cpp环境【NOIP2012普及组】【Vijos1792】摆花
- 【NOIP2012普及组】摆花 (递推)
- 【NOIP2012普及组】摆花(递推)
- NOIP2012普及组 T3 摆花(加强版)
- noip2012摆花
- [NOIP2012][VIJOS1792]摆花
- NOIP2012摆花
- NOIP2012普及组 摆花(重庆一中高2018级信息学竞赛测验6) 解题报告
- [NOIP2012][VIJOS1792][YZOJ2150]摆花
- 【动态规划】[NOIP2012]摆花
- Noip2012普及组
- 看到一篇文章分享给正在或者开始学习前端技术的你
- 2017多校训练Contest4: 1007 Matching In Multiplication hdu6073
- HDU-2017中国大学生程序设计竞赛-网络选拔赛-1004-A Secret
- linux守护进程、SIGHUP与nohup详解
- Unity_第一人称控制器的实现_059
- [Noip2012普及组]摆花
- P2296 寻找道路
- 【HDU2063】过山车(二分图最大匹配,匈牙利算法)
- Java练习(面向对象)
- 讲解ps中使用切片工具,进行图标的批量切割
- 3d-导航栏制作(导航栏上下翻转)
- 自定义ImageView点击实现两张图片切换
- 圣杯布局【双飞翼布局】的几种实现
- GIT知识杂记