• 【10.27】【VP】Codeforces Round #746 (Div. 2)


    ALL:7
    AC:2
    补题:2

    这场题出的挺好(


    B. Hemose Shopping

    题意:

    给你两个数 n , x n, x n,x,代表有 n n n 个元素。

    现在问你,能否通过交换两个距离大于等于 x x x 的数 a i , a j a_i,a_j ai,aj (即 ∣ i − j ∣ ≥ x |i-j|\geq x ijx),使得数组可以按照非递减的顺序来排序。

    如果可以,输出 YES,否则,输出 NO

    思路:在序列左端和右端各覆盖一个长度为 x x x 的区间,可以发现中间被覆盖两次的元素是无法交换的。对于最多覆盖一次的元素,发现可以直接或者间接交换任意两个元素的位置,即可以排序。

    AC代码:https://codeforces.com/contest/1592/submission/178078664


    C. Bakry and Partitioning

    题意:

    一棵树有 n n n 个节点,第 i i i 个节点的点权为 a i a_i ai 。(注:树是一个有 n n n 个节点、 n − 1 n-1 n1 条边的连通图

    你需要回答:能不能选择这棵树中的至少 1 1 1 条边、至多 k − 1 k-1 k1 条边删除,使得删除完这些边的树满足以下条件:

    • 每个联通块的点权异或和相等

    数据范围: n , k   ( 2 ≤ k ≤ n ≤ 1 0 5 ) , 1 ≤ a i ≤ 1 0 9 n,k\ (2\leq k \leq n \leq 10^5),1\leq a_i\leq 10^9 n,k (2kn105),1ai109

    思路:从结果开始考虑,如果最终有奇数个节点,那么可以缩到剩 3 3 3异或和相等的点;如果有偶数个,那么可以缩到剩 2 2 2 个异或和相等的点。

    那么先考虑是否有一条边使得切开这条边两个子树各自异或和相等,有的话即有解;否则,至少要删去两条边,在 k ≥ 3 k\geq 3 k3 的前提下继续判断。

    考虑两个异或值为全局异或的两个连通块在原树的位置:1. 两棵子树不相交。2. 一棵子树属于另一棵子树。我们计算每棵子树最多有多少个不相交的异或为全局异或的子树(不算上自身)的数量,记为 c n t i cnt_i cnti 。如果是前者,则要满足 c n t i ≥ 2 cnt_i\geq 2 cnti2 ;如果是后者,需要满足 c n t i = 1  AND  x i = 0 cnt_i=1 ~\text{AND}~x_i=0 cnti=1 AND xi=0

    AC代码:https://codeforces.com/contest/1592/submission/178094659


    D. Hemose in ICPC ?

    题意:

    给一棵 n ( 2 ≤ n ≤ 1 0 3 ) n(2\leq n\leq 10^3) n(2n103) 个点的树,定义 D i s t ( u , v ) Dist(u,v) Dist(u,v) u → v u \to v uv 路径上的边构成的边权集合的 gcd ⁡ \gcd gcd,且 u ≠ v u \neq v u=v

    每一你可以询问交互库 x x x 个点的点集 X X X,交互库会返回 X X X 中, max ⁡ { D i s t ( u , v ) } , u , v ∈ X \max\{Dist(u,v)\}, u,v \in X max{Dist(u,v)},u,vX 。也就是说,交互库会找到 X X X D i s t Dist Dist 最大的一个点对 ( u , v ) (u,v) (u,v) 并且返回它们的 D i s t Dist Dist

    最多可以询问交互库 12 12 12 次。你需要找到整棵树中 D i s t ( u , v ) Dist(u,v) Dist(u,v) 最大的那个点对 ( u , v ) (u,v) (u,v)。若有多个,任意一个都合法。

    交互格式:

    询问:? k v_1 v_2 ... v_k

    回答:! u v

    思路:问题等价于寻找树上最大边权对应点对。我们考虑树上的一个点集连通块,这个连通块不断向外拓展时, max ⁡ ( gcd ⁡ ( u , v ) ) \max(\gcd(u,v)) max(gcd(u,v)) 是不减的。我们可以在先序遍历序列上二分(这样点集一定是联通的),得到最大边权。

    AC代码:https://codeforces.com/contest/1592/submission/178105654

  • 相关阅读:
    Excel批量插入工作表
    FPGA开发技巧备忘录——大量相同类型IP核仿真时tcl简化写法
    JAVA数据类型及自动类型转换、强制类型转换
    互联网数据管理平台
    思考(八十八):使用 protobuff 自定义选项,做数据多版本管理
    Java- 继承 和 实现 、组合
    「聊设计模式」之模板方法模式(Template Method)
    CrossFTP
    Linux零拷贝原理学习
    Nanoprobes Alexa Fluor 488 FluoroNanogold 偶联物
  • 原文地址:https://blog.csdn.net/weixin_51948235/article/details/127565639