HNOI 2018 省队集训 6.22

circular

考场上的乱搞搞:  

  环上的线段覆盖

  对于 30% 的数据: N ≤ 1000 :  暴力枚举起始线段,贪心 O(n^2)

  对于 100% 的数据: N ≤ 100000 : 先破环成链,随机起始点,只处理 [ s, s + M ] 的线段,玄学AC,计算结果只可能是 ans 或 ans - 1,多处理几次,正确率还是挺高的 O(随机次数 * n)

正解:

  预处理跑一遍,nxt[i] 记录下一次选的区间,倍增处理 O(n * logn)

admirable

  一开始看没什么思路,就先写了第三题,再回看时间也不太多了,暴力感觉有点复杂,最后也没打出来

正解:

  若不是返祖路径,f(x)记录在x的子树中选k个点的方案数,那么路径 x - y 对答案的贡献即为 f(x) * f(y)

  若为返祖路径,g(x, i) 记录 x 第 i 个儿子方向的 f(x),路径 x - y 对答案的贡献即为 f(x) * g(y, i)

  f, g 可以分治 fft 求得

illustrious

数论先打表:

  对于 10% 的数据,有 1 ≤ n ≤ 1000 :直接暴力

  对于 50% 的数据,有 1 ≤ n ≤ 10^6 :打完10分暴力发现主要问题出在 g(g(n)),g(n)过大导致数组越界,考虑线性推出 g(g(n)),打个表发现规律

正解:

  对于 100% 的数据,有 1 ≤ T ≤ 5, 1 ≤ n ≤ 10^9 :分段打表 (因为询问次数只有5,考试时就一直在想怎么单独求 h(n),最后还是没推出来)

猜你喜欢

转载自www.cnblogs.com/XYZinc/p/9214713.html
今日推荐