• NOIP模拟 17


      这次..

      考场刚了T1T2两题的正解

      然后T2A了,T1被毒瘤卡常

      让skyh得了rank1,QMQ

      话说这次考试体(r)验(p)极(yong)佳(jin)

      也许是昨晚没玩狼人杀睡的比较好?(现场%苗东旭)

    T1 入阵曲

      赞美RNB摆脱犯罪深渊(掌声走已)

      正解是个桶,但是卡常了,n^3开longlong会当场被日成n^4

     

    T2 将军令

      菜狗又没想出贪心

      大神们都说DP不可做?

      考场上弄了个不知道对不对的dp

      考试过程

        不想看的跳过

        仔细阅读了题面。凭君莫话封侯事,一将功成万骨枯。

        等不及中二病发作,赶紧看题

        看了眼k,貌似是个DP?(贪心:喂喂喂想想我啊)

        打了个看起来不是很靠谱的树形dp,结果样例全过了..

        冷静撕烤

        好像少考虑一种情况...

        出题人又出水样例...

        差点被算计!

        打个对拍吧..

        少考虑的加上了..

        拍了20000多组了..

        emmmmm应该稳了..

        (内心其实是:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈)

      

      DP思路:

        设$dp[i][j]$为满足 以$i$为节点的子树全部被看守,且离根节点$i$最近的驻扎点距离为$j$的 驻扎点最少数量。

        鉴于一个点可以被儿子或祖先两个方向看守,将两点之间的距离上限$d$设为看守半径r的二倍(人话翻译:设$d=2*r$)

        再考虑被兄弟看守的情况,设有一个兄弟子树的最近驻扎点到父亲节点的距离为$dis$

        可以得知该驻扎点看守这棵子树的最大深度为$d-dis-1$ ,也就是这棵子树的第$d-dis$层必须要放一个点了

        所以状态转移方程

    $ dp[i][0]=sum limits_{k in son[i] } dp[k][d] $

    $ dp[i][j]=min limits_{k in son[i]} ( dp[k][j-1] + sum limits_{u in otherson } dp[u][max(j-1,d-dis)] )$

        由于在一棵子树中 最近驻扎点距离越远花费不会更高 所以上边两个柿子都是用可能的最大距离进行转移的

        在根节点处需要特殊考虑,因为根节点没有父亲管着,如果最近驻扎点还是$ 2*r $那应该是不合题意的

        所以$ ans=minlimits_{i<=r}(dp[root][i] )$而非$ ans=minlimits_{i<=d}(dp[root][i]) $

        然后就很幸运地A掉了,如果有漏洞还请不烦指出

    T3 星空

        问题转化的思想可以说是很惊艳了

        区间异或到异或差分,观察性质后又转化成图论,最后用状压求解

        而我只是一个颓了题解匆匆水过的菜狗..

  • 相关阅读:
    Java异常处理设计(三)
    TS 3.1
    TS 3.1
    Other
    样式
    Other
    Other
    TS 3.1
    TS 3.1
    TS 3.1
  • 原文地址:https://www.cnblogs.com/yxsplayxs/p/11334499.html
Copyright © 2020-2023  润新知