• 【JZOJ3853】【NOIP2014八校联考第2场第2试9.28】帮助Bsny(help)


    EVRT

    Bsny的书架乱成一团了,帮他一下吧!
    他的书架上一共有n本书,我们定义混乱值是连续相同高度书本的段数。例如,如果书的高度是30,30,31,31,32,那么混乱值为3;30,32,32,31的混乱值也为3。但是31,32,31,32,31的混乱值为5,这实在是太乱了。
    Bsny想尽可能减少混乱值,但他有点累了,所以他决定最多取出k本书,再随意将它们放回到书架上。你能帮助他吗?
    1≤k≤n≤100,注意所有书本高度在[25,32]。

    COMEHERE

    首先如果考虑动态规划的话,会设置f[i][j],表示表示前i本书中,有j本书被抽走。
    再想想会加上第三维k,表示没被抽走的书中最后一本书的高度是k
    显然转移方程有两种:

    1.不抽走当前这本书,容易推;
    2.抽走当前这本书,但要放在哪呢?
    (1)放在另一本和这本书的高度相同的书旁边;
    (2)放在开头,自成一家。
    

    讨论第(1)种情况,
    –如果这所谓的“另一本”在这本书的前面,由于书的高度只有8种,所以考虑加上第四维l,表示没被抽走的书的高度出现情况压位(28)。

    –如果这所谓的“另一本”在这本书的后面,容易得出这本书后面是否有另一本相同高度的书,预处理出来就可以。


    f[i][j][k][l],表示前i本书中,有j本书被抽走,没被抽走的书中最后一本书的高度是k,没被抽走的书的高度出现情况压位(28)表示l,的最小混乱度。

  • 相关阅读:
    MySQL 8.0复制性能的提升(翻译)
    mongodb节点配置指南
    ProxySQL读写分离
    MySQL JOIN原理
    pt-summary
    Unity3D安卓打包参数配置与兼容性的关系分析
    unity3d 动画卡帧 动画合成 动画层次
    单机游戏计时器防作弊解决方案
    Unity3D占用内存太大的解决方法
    AndroidManifest.xml配置
  • 原文地址:https://www.cnblogs.com/hiweibolu/p/6714806.html
Copyright © 2020-2023  润新知