• dp总结


    dp总结

    线性dp

    特点:由已知的子问题递推过来,是有方向性的,且有明显的维度。

    求解过程:定义dp -> 确定目标 -> 寻找转移方程 -> 考虑优化(有些题不需要)

    怎么确定转移方程:考虑两种思考方式:1.如何得出一个状态    2.已知这个状态怎么推其它状态

    时间复杂度:直接根据for来乘计算即可

    相关题目:

    1.基础求LIS

    变式1:把一个序列变成非严格递增序列,最少变动的数的个数

    长度-最长不下降子序列长度

    变式2:把一个序列变成严格递增序列,最少变动的数的个数

    长度-最长不下降子序列长度

    但是不是对原序列求最长不下降子序列,而是将a[ i ] - = i 后再求!!!

    原因:不减会导致最后修改成非严格的序列了,减了后保证了严格单增

    2.Making the Grade(POJ3666) 离散化+dp优化

    储存最优值优化:这是在dp中常用的优化。

    适用对象:决策集合只增不减的情况

    优化过程:每次用一个临时变量储存一下最优值 ,更新的时候直接用 ,而不是for一遍寻找当更新完一个dp ,又将最优值更新。

    3.LCIS(最长公共上升子序列)

    重点在于如何定义dp,用储存最优值优化

     

    数位dp:

    其实打好dfs的模板就可以走遍天下了

    时间复杂度:每一种状态只会遍历一次

    套路:求区间满足条件的数的个数:solve(r)-solve(l-1)。写一个solve函数,处理放进来的数,写一个dfs,统计一下方案。

    dfs函数:将一些必须的限制传参,压入dp的维度里。pos记录填到第几位了,lim记录是否压了上界,zero记录是否有前导0(在可以抵消的情况下也可以不考虑)。

    然后根据是否压上界确定枚举这一位数填的范围,最后通过记忆化搜索的记录保证不会重复搜索。

    数位dp总结

    状压dp:

    状压dp入门(模板题+思维题)

  • 相关阅读:
    mp3播放时间
    图片生成视频
    语音合成服务
    360p以上
    实现文字转语音功能
    字幕格式
    音频格式
    视频格式
    微信发朋友圈 -- 群营销素材同步
    FourCC
  • 原文地址:https://www.cnblogs.com/mowanying/p/11391374.html
Copyright © 2020-2023  润新知