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普及组]摆花相关推荐

  1. 洛谷P1077 [NOIP2012 普及组] 摆花

    题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 mm 盆.通过调查顾客的喜好,小明列出了顾客最喜欢的 nn 种花,从 11 到 nn 标号.为了在门口展出更多种花,规定第 i ...

  2. 洛谷P1077 [NOIP2012 普及组] 摆花 (DP)

    题意:小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 mm 盆.通过调查顾客的喜好,小明列出了顾客最喜欢的 n种花,从1到n标号.为了在门口展出更多种花,规定第 ii 种花不能超过ai ...

  3. P1077 [NOIP2012 普及组] 摆花

    这是我差不多是第一次从暴力递归优化到记忆化搜索,期间经历了一定的曲折. 解题过程: 1.看到这个题首先能够想到,每次摆花,可以选择和前面一样的花(如果前面的花还有剩余的话),也可以选择摆下一种花,于是 ...

  4. 信息学奥赛一本通 1958:【12NOIP普及组】寻宝 | OpenJudge NOI 1.12 06 | 洛谷 P1076 [NOIP2012 普及组] 寻宝

    [题目链接] ybt 1958:[12NOIP普及组]寻宝 洛谷 P1076 [NOIP2012 普及组] 寻宝 OpenJudge NOI 1.12 06:寻宝 [题目考点] 1. 模拟 2. 循环 ...

  5. 洛谷——P1075 [NOIP2012 普及组] 质因数分解

    P1075 [NOIP2012 普及组] 质因数分解 题目描述 已知正整数nn是两个不同的质数的乘积,试求出两者中较大的那个质数. 输入格式 一个正整数nn. 输出格式 一个正整数pp,即较大的那个质 ...

  6. 信息学奥赛一本通 1098:质因数分解 | 1957:【12NOIP普及组】质因数分解 | OpenJudge NOI 1.5 43 | 洛谷 P1075 [NOIP2012 普及组] 质因数分解

    [题目链接] ybt 1098:质因数分解 ybt 1957:[12NOIP普及组]质因数分解 OpenJudge NOI 1.5 43:质因数分解 洛谷 P1075 [NOIP2012 普及组] 质 ...

  7. NOIP2012 普及组 T4 文化之旅

    文化之旅 (NOIP2012 普及组 T4 ) 题目描述 有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文 ...

  8. NOIP2012普及组 (四年后的)解题报告 -SilverN

    本章施工仍未完成 现在的时间是3.17 0:28,我困得要死 本来今天(昨天?)晚上的计划是把整个四道题的题解写出来,但是到现在还没写完T4的高效算法,简直悲伤. 尝试了用floyd写T4,终于大功告 ...

  9. 【NOIP2012普及组】摆花

    题目大意:有n种花,每种花都有它自己的数量a[i],现在要求将这些花按照编号从小到大排成m盆花的方案数. 题目数据规模很大而且最后答案要求取模,很明显需要用递推算法求解.递推算法求解有三步. 一.设状 ...

最新文章

  1. 2021年春季学期-信号与系统-第二次作业参考答案-第六小题
  2. 用verilog表示两个4x4矩阵的乘法运算?及单个矩阵的求逆
  3. 为什么链接库的顺序有时会导致GCC错误?
  4. PHP检查微信域名屏蔽接口,微信域名检测API接口,实时查询域名是否被微信拦截...
  5. expect巡检服务器_Shell-批量巡检服务器脚本
  6. Unity3d开发IOS游戏 基础
  7. mysql 时间 本周 本月_不要再等了,储蓄国债发行又被取消,本周还有两批国债能不能买...
  8. python工资一般多少西安-python西安薪资
  9. HibernateTemplate.save()与HibernateTemplate.update() 无法写入数据库的问题
  10. Linux学习笔记(7)
  11. Android业务组件化之Gradle和Sonatype Nexus搭建私有maven仓库
  12. lvds输入悬空_LVDS的接口电路设计
  13. cdr怎么抠图轮廓线条_cdr怎么快速抠图呢 需要技巧
  14. 文本生成图像Text-To-Image评估指标IS、FID、VSS、R-precision
  15. Mean Rank 和Mean reciprocal rank
  16. chromium下载历史版本错误
  17. UE编辑器重要快捷键总结
  18. 华三交换机查看光模块参数的命令
  19. Codeforces Round #363 (Div. 2) B. One Bomb(思维题目)
  20. Fluent材料属性之比热容计算方法

热门文章

  1. 金融贷款行业获客新渠道:贷款行业电销资源如何获取,一手精准客户资源在哪找
  2. Linux安全之禁用特定命令
  3. Java实现地下城游戏(动态规划)
  4. ITN网络课程笔记(六)
  5. 解决android studio模拟器不显示应用问题
  6. AI助力航母大变脸:无人机航母浮出海面
  7. vue mixins 混入
  8. 照片调色系列教程(6):唯美婚纱效果
  9. PHP与Python对比
  10. python盗墓笔记爬虫爬虫scrapy_redis——MongoDB存储