这道题目是一个很好的练线性动规的题目【至少本菜鸟是这么觉得】;

P1077 [NOIP2012 普及组] 摆花 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

然后我们用集合的角度来理解这道题目;

我们先看一下最后的状态有什么属性,然后对某些属性用一个维度来描述,即dp数组的维度;

首先是花盆有m个,且是由前n盆花构成的集合,且第n盆花放了有0~st[n]盆【st[i]为第i盆花可以最多可以放多少盆;

所以我们可以开一个3维的数组来描述这3种状态;

即f[i][j][k]为用前i种花共摆m盆且第i种花放了k盆的方案数;

这里我们可以对f[i][j][k]这个集合进行拆分:

因为第i种花得放在最后,所以f[i][j][k]的方案数是与f[i-1][j-k]等价的,即由前i-1种花放了j-k盆的方案数,而这个f[i-1][j-k]的方案数正是f[i-1][j-k][1~st[i-1]的总和,而f[i-1][j-k][t]【t属于0~st[i-1]】也可以通过上述方式递归下去;

到了这里,我们已经找到状态转移方程了即

那么接下来就是代码了;

#include<iostream>
#include<algorithm>
using namespace std;const int N=110;int f[N][N][N];//前i种花,有j个位置,且第i种花放k盆的方案数
int st[N];
int n,m,cont;
int ans;int main(){cin>>n>>m;//cout<<n<<m;for(int i=1;i<=n;i++){int x; cin>>x;if(x) st[++cont]=x;}n=cont;for(int i=0;i<=n;i++) f[i][0][0]=1;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){for(int k=0;k<=st[i]&&k<=j;k++){for(int z=0;z<=st[i-1]&&z<=j-k;z++)f[i][j][k]+=f[i-1][j-k][z];f[i][j][k]%=(int)1e6+7;}}}for(int i=0;i<=st[n];i++){ans+=f[n][m][i];ans%=(int)1e6+7;}cout<<ans;}

洛谷P1077:摆花【动态规划】相关推荐

  1. 洛谷 P1077 摆花 题解

    洛谷 P1077 摆花 题解 洛谷 P1077 题目 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共mmm盆.通过调查顾客的喜好,小明列出了顾客最喜欢的nnn种花,从1到nnn标号.为 ...

  2. 洛谷P1130 红牌 动态规划

    洛谷P1130 红牌 动态规划 状态转移方程   dp[ j ][ i ] = dp[ j-1 ][ i-1 ] + dp[ j ][ i-1 ]   然后 1 的时候判一下就行 1 #include ...

  3. 对于洛谷提高试炼场-动态规划篇的爆破

    题外话 由于本蒟蒻的动态规划实在是太弱啦,所以有必要爆破一下洛谷提高试炼场.里面有很多非常好,难度也合适的动态规划题--(然而你还是抄了不少题解) niconiconi~让我们一起开始爆破吧. lv- ...

  4. 【洛谷】【动态规划/二维背包】P1855 榨取kkksc03

    [题目描述:] ... (宣传luogu2的内容被自动省略) 洛谷的运营组决定,如果...,那么他可以浪费掉kkksc03的一些时间的同时消耗掉kkksc03的一些金钱以满足自己的一个愿望. Kkks ...

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

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

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

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

  7. 【洛谷】【动态规划+单调队列】P1725 琪露诺

    [题目描述:] 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精. 某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来.但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸.于是琪露诺决定到河 ...

  8. 洛谷 深基 第4部分 基础数学与数论(19-21课)

    洛谷 深基 第4部分 基础数学与数论  第19章 位运算与进制转换 P1143 进制转换 https://www.luogu.com.cn/problem/P1143 洛谷P1143 进制转换的Pyt ...

  9. 动态规划——洛谷_P1057传球游戏

    题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...

最新文章

  1. 18岁一战成名,数学界颜值巅峰!35岁任教清华!
  2. 怎么看rx580是不是470刷的_怎么看钻石是不是奶咖钻,钻石证书上可以看出奶咖钻石吗...
  3. 信用社和民营银行存款利息都高,有5万块钱存哪个更安全?
  4. pandas追加写入excel_[Excel]如果你爱Excel,请学好pandas
  5. 经过路由无法找到计算机,电脑无法启动服务提示系统找不到指定的路径(图)
  6. 1 操作系统第一章 操作系统概念、功能、四大特征、操作系统发展与分类
  7. 安装向导因错误而提前结束_【软件安装】SIMATIC STEP7 V5.6中文版安装教程及错误解决方法...
  8. oracle 12c 创建PDB用户即Local User (PDB与CDB)
  9. 塞内卡学院实现开源的价值
  10. linux 远程链接数据库报错host *** is not allowed to connect to this mysql server
  11. 顺序线性表 ---- ArrayList 源码解析及实现原理分析
  12. 展厅智能中央控制服务器,可视化展馆智能中控-智能中央控制系统
  13. elastaticresearch 学习过程
  14. letter-spacing和word-spacing之间的区别
  15. 发送邮件服务器错误怎么更改,怎么解决SMTP服务器发送邮件失败
  16. ubuntun安装扫描仪
  17. Python 小型项目大全 36~40
  18. 阅读5Incorporating travel behavior regularity into passenger flow forecasting
  19. chrome调试与设置 remote设备调试
  20. iPhone帮帮忙(全彩)

热门文章

  1. 如何给树莓派搭建WEB开发运行环境之JAVA篇
  2. CityEngine CGA语法之拉伸函数 extrude
  3. THREE + d3制作中国地图挤压(extrude)模型
  4. 华为云主机云服务器备份的发展和现状
  5. TMS320C6748开发视频教程笔记 第9章 中断与异常
  6. Compose主题切换,让你的APP也能一键换肤
  7. 微信头像可以加挂件了,快试试
  8. URL获取Cookie(或者说是session)
  9. 休假时自动回复邮件怎么写?
  10. Solana扩容机制分析(2):牺牲可用性换取高效率的极端尝试 | CatcherVC Research