[NOIP2012普及组]摆花
Description
小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 m 盆。通过调查顾客的喜好,小明列出了
顾客最喜欢的 n 种花,从 1 到 n 标号。为了在门口展出更多种花,规定第 i 种花不能超过 ai盆,摆花时同一
种花放在一起,且不同种类的花需按标号的从小到大的顺序依次摆列。试编程计算,一共有多少种不同的摆花方案
Input
共 2 行。
第一行包含两个正整数 n 和 m,中间用一个空格隔开。
第二行有 n 个整数,每两个整数之间用一个空格隔开,依次表示 a1、a2、……an。
Output
输出只有一行,一个整数,表示有多少种方案。
注意:因为方案数可能很多,请输出方案数对 1000007 取模的结果。
Sample Input
2 4
3 2
Sample Output
2
HINT
DP
题解
用f[i][j]表示第j个位置摆第i种花的方案数。那么很容易得到状态转移方程:f[i][j]=sum(f[i-1][j-k])(j>=k且0<=k<=a[i])。
代码
#include <cstdio>
#include <algorithm>const int maxn=100;
const int mo=1000007;int a[maxn+10],f[maxn+10][maxn+10];
int n,m;inline int read()
{int x=0,f=1;char ch=getchar();while ((ch<'0')||(ch>'9')){if (ch=='-'){f=0;}ch=getchar();}while ((ch>='0')&&(ch<='9')){x=x*10+ch-'0';ch=getchar();}return f?x:-x;
}int main()
{n=read(),m=read();for (int i=1;i<=n;i++){a[i]=read();}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 (k>j){break;}f[i][j]+=f[i-1][j-k];f[i][j]=f[i][j]%mo;}}}printf("%d\n",f[n][m]);return 0;
}
[NOIP2012普及组]摆花相关推荐
- 洛谷P1077 [NOIP2012 普及组] 摆花
题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 mm 盆.通过调查顾客的喜好,小明列出了顾客最喜欢的 nn 种花,从 11 到 nn 标号.为了在门口展出更多种花,规定第 i ...
- 洛谷P1077 [NOIP2012 普及组] 摆花 (DP)
题意:小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 mm 盆.通过调查顾客的喜好,小明列出了顾客最喜欢的 n种花,从1到n标号.为了在门口展出更多种花,规定第 ii 种花不能超过ai ...
- P1077 [NOIP2012 普及组] 摆花
这是我差不多是第一次从暴力递归优化到记忆化搜索,期间经历了一定的曲折. 解题过程: 1.看到这个题首先能够想到,每次摆花,可以选择和前面一样的花(如果前面的花还有剩余的话),也可以选择摆下一种花,于是 ...
- 信息学奥赛一本通 1958:【12NOIP普及组】寻宝 | OpenJudge NOI 1.12 06 | 洛谷 P1076 [NOIP2012 普及组] 寻宝
[题目链接] ybt 1958:[12NOIP普及组]寻宝 洛谷 P1076 [NOIP2012 普及组] 寻宝 OpenJudge NOI 1.12 06:寻宝 [题目考点] 1. 模拟 2. 循环 ...
- 洛谷——P1075 [NOIP2012 普及组] 质因数分解
P1075 [NOIP2012 普及组] 质因数分解 题目描述 已知正整数nn是两个不同的质数的乘积,试求出两者中较大的那个质数. 输入格式 一个正整数nn. 输出格式 一个正整数pp,即较大的那个质 ...
- 信息学奥赛一本通 1098:质因数分解 | 1957:【12NOIP普及组】质因数分解 | OpenJudge NOI 1.5 43 | 洛谷 P1075 [NOIP2012 普及组] 质因数分解
[题目链接] ybt 1098:质因数分解 ybt 1957:[12NOIP普及组]质因数分解 OpenJudge NOI 1.5 43:质因数分解 洛谷 P1075 [NOIP2012 普及组] 质 ...
- NOIP2012 普及组 T4 文化之旅
文化之旅 (NOIP2012 普及组 T4 ) 题目描述 有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文 ...
- NOIP2012普及组 (四年后的)解题报告 -SilverN
本章施工仍未完成 现在的时间是3.17 0:28,我困得要死 本来今天(昨天?)晚上的计划是把整个四道题的题解写出来,但是到现在还没写完T4的高效算法,简直悲伤. 尝试了用floyd写T4,终于大功告 ...
- 【NOIP2012普及组】摆花
题目大意:有n种花,每种花都有它自己的数量a[i],现在要求将这些花按照编号从小到大排成m盆花的方案数. 题目数据规模很大而且最后答案要求取模,很明显需要用递推算法求解.递推算法求解有三步. 一.设状 ...
最新文章
- 2021年春季学期-信号与系统-第二次作业参考答案-第六小题
- 用verilog表示两个4x4矩阵的乘法运算?及单个矩阵的求逆
- 为什么链接库的顺序有时会导致GCC错误?
- PHP检查微信域名屏蔽接口,微信域名检测API接口,实时查询域名是否被微信拦截...
- expect巡检服务器_Shell-批量巡检服务器脚本
- Unity3d开发IOS游戏 基础
- mysql 时间 本周 本月_不要再等了,储蓄国债发行又被取消,本周还有两批国债能不能买...
- python工资一般多少西安-python西安薪资
- HibernateTemplate.save()与HibernateTemplate.update() 无法写入数据库的问题
- Linux学习笔记(7)
- Android业务组件化之Gradle和Sonatype Nexus搭建私有maven仓库
- lvds输入悬空_LVDS的接口电路设计
- cdr怎么抠图轮廓线条_cdr怎么快速抠图呢 需要技巧
- 文本生成图像Text-To-Image评估指标IS、FID、VSS、R-precision
- Mean Rank 和Mean reciprocal rank
- chromium下载历史版本错误
- UE编辑器重要快捷键总结
- 华三交换机查看光模块参数的命令
- Codeforces Round #363 (Div. 2) B. One Bomb(思维题目)
- Fluent材料属性之比热容计算方法