• CF #722 Div2题解


    看起来我的英文水平没有太差嘛

    C

    开局先看C,没有思路,猜了一个结论,对于一个节点u,取值 (x in [a_u,b_u]) 的时候子树贡献最大,那么总会有令 (x = a_u)(x = b_u) 的时候答案不会更劣。感性理解一下感觉没毛病,因为若移动后可以想到对于 u 的儿子们 v,考虑儿子们的取值与 u 的取值。可以放到数轴上考虑。发现若移动不会使答案变大,那么显然 x 可以取 (a_u)(b_u) 。若有变化,可以发现答案类似于一个二次函数里 (a < 0) 的图像。在两边可以取到最大值。

    根据这个结论,可以容易的写出树形dp,用了11min就过了这道题……希望不要FST。

    UPD:没有FST诶!

    B

    然后看B,不会……

    最后发现所取数列的正整数不超过 1 个,也好理解,毕竟两个正整数的差肯定小于最大的那个数了。这样只需要考虑一下我们选不选最小的正整数即可,容易证明,选择最小的正整数比选择其他正整数不会更劣。如果我们发现我们需要舍弃某些负数才能选择该正整数,则不选择它,因为选择它对答案的贡献为 (1-舍弃的数的数量) ,必然非正。

    43min的时候才过B,wtcl!

    A

    然后看A,一眼又不会qwq。

    最后发现实际上我可以把不是最小元素的元素全都删掉,那就很好写了,在49min的时候过掉了这道题。

    D

    D随便手玩几个数据试图去oeis上找,然后估计是手玩错了没找到qwq。推了一下发现 (f_i = d(i) + sumlimits_{j=1}^{i-1}f_j),调和级数处理一下d然后直接递推就好了。

    过得时候已经1:09min了qwq

    E

    E题随缘做了。考虑反图,发现建不出来。考虑最大团实际意义,是A树上的一条链,取最多的点使其在B树上没有祖先-后代关系。

    可以发现,对于这些点,在B中深度越深越好,那么我们DFS A树,对于每个DFS到的点u,我们考虑他在B树的子树中有没有选中点,如果有的话我们放弃选择u,因为必然不会更优。如果没有,我们选择u。再考虑在B树中,从u到根这条链上有没有被选择的点。若有的话必然是选择u更优,将其删除。

    每次DFS完一个节点后将修改还原回去即可。

    最后在2:07的时候终于过了。

    F

    并没有去看F是啥。

  • 相关阅读:
    「Java分享客栈」Nacos配置中心称王称霸,我Apollo一生也不弱于人!
    超详细干货!Docker+PXC+Haproxy搭建高可用强一致性的MySQL集群
    中科大下载android源码
    binder框架核心类关系图
    BinderService模板类
    SpringBoot启动命令行参数【D】和【】的区别
    MySQL快速生成大量数据的SQL存储过程
    【已解决】'sql_server.pyodbc' isn't an available database backend.
    python 常用模块
    hive正则
  • 原文地址:https://www.cnblogs.com/nao-nao/p/14807001.html
Copyright © 2020-2023  润新知