• NOIP2020 做题练习(day1)


    A - [JSOI2007]重要的城市

    题面

    首先建出最短路图。

    重要的城市其实就是指删除这个点后至少有一对点的最短路会改变。

    然后统计一下每个点的度数,对于每条边 ((u, v)),如果 (v) 的度数为 (1),那么 (u) 就是一个重要的城市。

    因为删去了 (u) 之后,一定存在一个点 (u'),使得 (u')(v) 在这张最短路图中不连通,即他们的最短路改变。

    代码

    B - [USACO09JAN]Safe Travel G

    题面

    首先考虑建出最短路树。

    然后对于每一条非树边 ((u,v,w)),它对于 (u)(v) 路径上的点(不包含它们的 LCA)的贡献就是 (dis_u+dis_v+w)。一个在 (u)(v) 路径上的点 (p) 此时的答案就是 (dis_u+dis_v+w-dis_p)。由于 (dis_p) 固定,那么我们的目标就是最小化 (dis_u+dis_v+w)

    于是可以按照这个值从大到小排序,依次覆盖,最后单点查值即可。

    代码 1

    当然也可以不排序,直接覆盖,写一个区间取 min、单点查值的线段树。

    代码 2

    C - [FJOI2014]最短路径树问题

    题面

    还是先建出最短路树,然后就是点分治模板了。

    不过代码是真的难写

    代码

    D - [HNOI2006]公路修建问题

    题面

    显然二分。

    check 的时候可以贪心,先修建一级道路花费 (le mid) 的道路,如果 (le k) 就不行;然后修建二级道路花费 (le mid) 的道路。最后判断一下图是否连通即可。

    代码

  • 相关阅读:
    [LuoGu] P1004 方格取数
    [LuoGu] P1018 乘积最大
    [LuoGu] P2758 编辑距离
    [JZOJ] 01知多少
    [LuoGu] P1731 生日蛋糕
    $mathcal{Const,Inline,Register}$用法总结
    T2027 蜈蚣
    T57274 黑暗城堡
    P2312 解方程
    AT2412 最大の和
  • 原文地址:https://www.cnblogs.com/xsl19/p/13662512.html
Copyright © 2020-2023  润新知