• ACL1 Contest 1 简要题解


    A - Reachable Towns

    给定平面上 (n) 个点 ((x_i, y_i)) ,其中 (x_i, y_i) 分别是 (1, 2, cdots, n) 的排列

    定义点 (i) 可以到达点 (j) 当且仅当 (x_i<x_j, y_i<y_j)(x_i>x_j, y_i>y_j)

    对于每个 (1leq kleq n) ,求出从 (k) 出发能走到多少个点

    (nleq2 imes10^5)

    如果只有条件 (x_i<x_j, y_i<y_j) ,按 (x_i) 考虑,维护 (y_i) 降序的单调栈,用并查集维护能走到的点的集合

    对于条件 (x_i>x_j, y_i>y_j) 再扫一遍即可

    时间复杂度 (O(n))


    B - Sum is Multiple

    给定整数 (n) ,找到最小的正整数 (k) 满足 (n|frac {k(k+1)}2)

    (nleq10^{15})

    可得 (2n|k(k+1)) ,而 (k)(k+1) 互质

    由于在 (10^{15}) 范围内一个数最多有 (13) 个不同的质因数,考虑枚举 (2n) 的每个质因数的若干次幂出现在 (k) 还是 (k+1)

    容易发现这是若干个同余方程,使用 CRT 即可

    时间复杂度 (O(2^{omega(n)}omega(n)log n))


    C - Moving Pieces

    有一个 (n imes m) 的网格,每个点上可以是空地、障碍或棋子

    你每次可以执行以下操作:选择一个棋子,将其往下或往右移动一格,要求不能移出棋盘,且目的地不能是障碍或已经存在一个棋子

    • (n, mleq50)
    • 保证棋子个数 (leq100)

    将棋子看做左部点,所有非障碍位置看做右部点,做带权二分图匹配即可


    D - Keep Distances

    给定数轴上 (n) 个升序的不同位置 (X_i) 和一个常数 (k)

    (q) 次询问,每次给出 ([l, r]) ,定义一个集合 (S) 是合法的当且仅当:

    • 集合 (S) 中的每个元素均为 (X_l, X_{l+1}, cdots, X_r) 之一
    • 对于集合中任意两个不同元素 (x, y) ,满足 (|x-y|ge K)
    • 满足上述两个条件的前提下,集合 (S) 的大小尽量大

    你需要对于该询问找到所有合法集合的并的大小

    • (n, qleq2 imes10^5; Kleq10^9)
    • (1leq X_1<X_2<cdots<X_nleq10^9)

    对于单次询问 ([l, r]) ,记 (cnt) 为合法集合的大小, (f(i)) 是满足区间 ([l, f(i)]) 中合法集合大小为 (i) 的最小位置, (g_i) 是满足区间 ([g(i), r]) 中合法集合大小为 (i) 的最大位置

    不难发现答案等于 (displaystylesum_{i=1}^{cnt}g(i)-f(cnt-i+1)+1)

    (g(i)<f(cnt-i+1)) ,可以反证得到合法集合大小小于 (cnt)

    而对于开区间 ([f(cnt-i+1), g(i)]) 中的元素 (x) ,可以将位置 (f(cnt-i+1))(g(i)) 替换成 (x) 得到一个新的合法集合

    因此可以将求和拆开,用倍增维护集合,时空复杂度 (O(nlog n))

  • 相关阅读:
    推荐系统(二)
    应用高斯分布来解决异常检测问题(三)
    应用高斯分布来解决异常检测问题(二)
    应用高斯分布来解决异常检测问题(一)
    高斯(正态)分布、GDA、Mixtures of Gaussian
    主成分分析
    logistic回归
    推荐系统(一)
    基于朴素贝叶斯模型的文本分类
    K均值聚类算法
  • 原文地址:https://www.cnblogs.com/Juanzhang/p/13714526.html
Copyright © 2020-2023  润新知