1077 摆花
貌似这个题早就做过了,不过当时理解并不透彻吧
貌似这个题目是环形dp
首先我们设f[i]就是我们所求的摆放花盆的种数,算是dp中比较基础的了
首先我们需要枚举每一种花,然后对于每一种花再枚举每一盘,最后枚举每一种花的分数进行更新
貌似这样说不对,我也不知道怎么解释这道题了
再来总结一下,从大范围到小范围进行一个一个枚举,先枚举每一盆,在枚举每一株花,从大到小进行
初始化的时候需要将f[0]=1表示没有花的时候也得进行摆放,所以,不能设置成f[1],听说有人这一点错了不少/xyx
算是比较基础的了
----------重新------
动态规划
其实动态规划并不难,挺有趣的,非常有内涵的一个东西
只要你能搞明白f[i][j]的具体意思,你就会明白方程,不难设的
首先我们知道有m盆花,还有n种花,摆花时同一种花放在一起,且不同种类的花需按标号的从小到大的顺序依次摆列,让你求摆放方案
可以说很复杂
但是这样的方案题都是有公式
搜先我们得明白ai 是什么意思是指每种花最大的数量,但不一定就是固定数量,所以才会有方案的不同的
好了
肯定是一个动态规划
f[i]表示i盆花的方案数量
f[i]=f[i]+f[k-i])%mod
其中k就表示每一个的数量,但是我们需要限制k-i>0也就是是说这个总数量就是n不能超过这个吧,超过就没有了
所以
动态规划的精髓在哪里?他和贪心是思想上的不对,他和暴力是技术上的不对
暴力和搜索一样,都是去尝试答案,寻找答案 find search等
但是动态规划,不同就在于动态规划就是在寻找规律,防止做一些没必要的操作
比如斐波那契,最经典的dp
枚举呢?就是一位一位去计算,但是我们完全没必要每一个都计算
第i个和第i-1的区别,就是很细微的,而且是已经知道的
所以我们通过这个关系来搞一个方程,一个F未知数
OK
#includ