zoukankan      html  css  js  c++  java
  • 题解 ABC210F

    ABC210F - Coprime Solitaire

    原题链接

    看到这种两面性问题,显然想到 2-SAT。

    给每个质数设置一个集合。((2 imes 10^6) 之内的质数有 (148933) 个)

    先把每一个数字都质因数分解,如果某个数有质因数 (x_1,x_2...) ,就把这个数的位置、是正反面,加入 (x_1,x_2) 对应的集合中。

    这样一个集合中的数都不能同时共存,两两连边 ( eg X or eg Y)(即若 (X)( eg Y))。

    但是这样每个集合要连 (O(n^2)) 条边,显然爆炸,于是我们想到前后缀优化连边。

    对于每个集合,我们令 (P_i) 为前缀的 "( eg)" 连边和,(Q_i) 为后缀的 ''( eg)'' 连边和。

    则对于此集合的第 (i) 位,连边 (i o P_{i-1},i o Q_{i+1})

    这样每个集合只用连 (O(n)) 条边了。

    总时间复杂度 (O(nlog L))(L=max(A_i,B_i))

  • 相关阅读:
    MySQL length函数
    MySQL between ... and ...
    MySQL Group By使用
    MySQL 聚合函数/分组函数
    MySQL where与like
    MySQL order by与distinct
    城市网络
    滑动窗口
    合并回文子串(NC13230)
    NC50439
  • 原文地址:https://www.cnblogs.com/BlankAo/p/15025842.html
Copyright © 2011-2022 走看看