洛谷P1077:摆花【动态规划】
这道题目是一个很好的练线性动规的题目【至少本菜鸟是这么觉得】;
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:摆花【动态规划】相关推荐
- 洛谷 P1077 摆花 题解
洛谷 P1077 摆花 题解 洛谷 P1077 题目 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共mmm盆.通过调查顾客的喜好,小明列出了顾客最喜欢的nnn种花,从1到nnn标号.为 ...
- 洛谷P1130 红牌 动态规划
洛谷P1130 红牌 动态规划 状态转移方程 dp[ j ][ i ] = dp[ j-1 ][ i-1 ] + dp[ j ][ i-1 ] 然后 1 的时候判一下就行 1 #include ...
- 对于洛谷提高试炼场-动态规划篇的爆破
题外话 由于本蒟蒻的动态规划实在是太弱啦,所以有必要爆破一下洛谷提高试炼场.里面有很多非常好,难度也合适的动态规划题--(然而你还是抄了不少题解) niconiconi~让我们一起开始爆破吧. lv- ...
- 【洛谷】【动态规划/二维背包】P1855 榨取kkksc03
[题目描述:] ... (宣传luogu2的内容被自动省略) 洛谷的运营组决定,如果...,那么他可以浪费掉kkksc03的一些时间的同时消耗掉kkksc03的一些金钱以满足自己的一个愿望. Kkks ...
- 洛谷P1077 [NOIP2012 普及组] 摆花
题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 mm 盆.通过调查顾客的喜好,小明列出了顾客最喜欢的 nn 种花,从 11 到 nn 标号.为了在门口展出更多种花,规定第 i ...
- 洛谷P1077 [NOIP2012 普及组] 摆花 (DP)
题意:小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 mm 盆.通过调查顾客的喜好,小明列出了顾客最喜欢的 n种花,从1到n标号.为了在门口展出更多种花,规定第 ii 种花不能超过ai ...
- 【洛谷】【动态规划+单调队列】P1725 琪露诺
[题目描述:] 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精. 某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来.但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸.于是琪露诺决定到河 ...
- 洛谷 深基 第4部分 基础数学与数论(19-21课)
洛谷 深基 第4部分 基础数学与数论 第19章 位运算与进制转换 P1143 进制转换 https://www.luogu.com.cn/problem/P1143 洛谷P1143 进制转换的Pyt ...
- 动态规划——洛谷_P1057传球游戏
题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...
最新文章
- 18岁一战成名,数学界颜值巅峰!35岁任教清华!
- 怎么看rx580是不是470刷的_怎么看钻石是不是奶咖钻,钻石证书上可以看出奶咖钻石吗...
- 信用社和民营银行存款利息都高,有5万块钱存哪个更安全?
- pandas追加写入excel_[Excel]如果你爱Excel,请学好pandas
- 经过路由无法找到计算机,电脑无法启动服务提示系统找不到指定的路径(图)
- 1 操作系统第一章 操作系统概念、功能、四大特征、操作系统发展与分类
- 安装向导因错误而提前结束_【软件安装】SIMATIC STEP7 V5.6中文版安装教程及错误解决方法...
- oracle 12c 创建PDB用户即Local User (PDB与CDB)
- 塞内卡学院实现开源的价值
- linux 远程链接数据库报错host *** is not allowed to connect to this mysql server
- 顺序线性表 ---- ArrayList 源码解析及实现原理分析
- 展厅智能中央控制服务器,可视化展馆智能中控-智能中央控制系统
- elastaticresearch 学习过程
- letter-spacing和word-spacing之间的区别
- 发送邮件服务器错误怎么更改,怎么解决SMTP服务器发送邮件失败
- ubuntun安装扫描仪
- Python 小型项目大全 36~40
- 阅读5Incorporating travel behavior regularity into passenger flow forecasting
- chrome调试与设置 remote设备调试
- iPhone帮帮忙(全彩)