• AtCoder Grand Contest 010


    AGC 010

    B

    差分数组 (b_i=a_{i+1}-a_i),然后观察一下 (b) 的变化,列一下条件(略)

    C

    D

    答案和奇偶性有很大的关系。如果在某次操作完后除掉了一个奇因数,并不会改变奇偶性,因此我们只考虑偶因数。

    1、有奇数个偶数,先手必胜。因为一开始 (gcd=1),所以至少有一个奇数,先手一开始让一个偶数变成奇数,(gcd) 不可能为偶,这时候至少有两个奇数,后手也不可能让 (gcd) 为偶数。之后也一样,不给对手改变奇偶性的机会。

    2、开始时有大于一个奇数,和偶数个偶数,后手必胜。先手任意操作一次都会到达情况1的状态

    3、开始有一个奇数,和偶数个偶数。先手第一次只能操作那个奇数,模拟这个过程得到新的局面(特判这个数为 (1) 的情况)。如果出现情况1、2就直接判断,出现3不断递归。显然至多递归 (log n) 层。

    E

    如果已经却确定一开始的顺序,最后的结果可以用贪心的拓扑排序来得到。现在的问题就是给一些无向边定向,使得最后的拓扑序最小,同样可以用类似的贪心完成(略)

    F

    方案Ⅰ:先考虑只有两个点的情况,然后考虑树只有两层的情况,然后推广到普通情况。进行 (n) 遍树形 (dp)(O(n^2))

    方案Ⅱ:假设当前在 (x),如果 (x) 能走到的 (y) 都有 (a_y>a_x),那么先手必输。所以它一定会往 (a_y<a_x) 的地方走(这个解释有一定问题,但结论是对的,可自行思考),往 (y) 递归下去。如果存在一个 (y) 走完后先手必败,那么当前先手必胜。能走的边构成DAG,可以直接一遍递推完成,复杂度 (O(n))

  • 相关阅读:
    死锁
    线程池
    jQuery param()作用与使用方法
    jQuery remove()与jQuery empty()的区别
    jQuery局部动态刷新
    jQuery事件函数位置放置的两种方法
    跨语言通信方案的比较—Thrift、Protobuf和Avro
    Nodejs下如何判断文件夹的存在以及删除文件夹下所有的文件
    如何缓存hbase数据以减少下次取数据的时间
    javascript Date对象的介绍及linux时间戳如何在javascript中转化成标准时间格式
  • 原文地址:https://www.cnblogs.com/whx666/p/agc010.html
Copyright © 2020-2023  润新知