• IOI2020国家集训队作业选做Part1


    (color{red}checkmark)表示有做

    (color{green}checkmark)表示有做,且写了题解

    (circ)表示尝试了,但是不会

    (color{yellow}checkmark)表示想过了,但是没有写代码(口胡了)

    (* easy)表示较简单

    (* medium)表示中等

    (* hard)表示难

    以上难度均指思维难度,主观性较强,与luogu,cf评分可能出入较大,不过luogu有一些比较早的CF黑题是真的水

    没标难度大部分是上古时期在做题的时候无意中做到的,差不多忘光了

    进度(19 / 50)

    Part1.

    1. CF504E((color{red}checkmark))
    2. CF505E((color{red}checkmark))
    3. CF506E ((circ))(* hard)
    4. CF512D((color{yellow}checkmark))(* easy)
    5. CF516D((color{green}checkmark))(* easy)
    6. CF521E((color{green}checkmark))(* medium)
    7. CF538G((color{red}checkmark))(* medium)
    8. CF538H((color{green}checkmark))(* medium)
    9. CF547E((color{red}checkmark))(* easy)
    10. CF585E((color{red}checkmark))(* easy)
    11. CF553E((color{yellow}checkmark))(* medium)
    12. CF549E((circ))(* hard)
    13. CF555E((color{yellow}checkmark))(* easy)
    14. CF568E((color{red}checkmark))(* medium)

    部分题目简要题解

    如果是比较有趣的题会另外写题解,在这里挂链接,简单题就算了

    1. CF516D
    • 由直径的性质,我们注意到(f_x)表示的是到直径两端点的最大值,我们令(v_x)表示(f_x = dis(x,v_x))
    • 考虑直径的中点,如果以其为根,那么对于根的任一子树,任意点的(v_x)一定会在另一颗子树内,即子树内部的(f_x)随着与深度同增同减,即父亲的(f_x)一定严格小于儿子的(f_x)
    • 如果直径的中点是一条边,那么取两端(f_x)较小的那个点即可
    • 根据以上性质,可以线段树合并,直接查询,也许可以用并查集做到更优的复杂度
    • 复杂度(O(qnlog n))
    1. CF538G
    • 注意到上下左右走(x,y)互相约束,不好考虑
    • 考虑转坐标系,用切比雪夫距离来代替曼哈顿距离,(x' = x + y,y' = y - x)
    • 不等式约束计算一下即可
    1. CF538H
    1. CF553E
    • 注意一下转移中因为 j 的值单调增加,所以转移是 DAG,用记忆化搜索即可
    • 注意转移形式是一个半在线卷积,分治 FFT 即可
    1. CF555E
    • 把边双联通分块缩点,定向成强连通
    • 剩下的树上差分随便做就可以了
  • 相关阅读:
    最火的.NET开源项目[转]
    ExtJs4.1目录结构介绍和使用说明[转]
    mvc4 Forms验证存储 两种登录代码
    微服务 第九章 springboot 使用NoSql数据库:redis
    【数据挖掘】关联分析之Apriori(转载)
    C语言面试
    10.15习题2
    java 执行linux命令
    servlet tomcat eclipse
    002_监测ssl证书过期时间
  • 原文地址:https://www.cnblogs.com/y-dove/p/14818313.html
Copyright © 2020-2023  润新知