zoukankan      html  css  js  c++  java
  • A

    杂题 A set count [* easy]

    给定集合 (S),定义 (i) 合法当且仅当存在 (xin S) 使得 (imod x=0)

    定义 (f(i))(i) 合法且 (i-1) 合法。

    (sum_{i=1}^n f(i))

    (nle 10^9,|S|le 15)

    Solution

    从值域上看,我们等价于计算合法的元素个数减去段数。

    段数等价于多少个 (i) 满足 (i) 合法且 (i-1) 不合法。

    这个条件等价于存在 (imod x=0) 且对于所有 (x)(imod x e 1)

    通过容斥原理,不难发现我们等价于计算:

    [sum_{x=1}^n xigg(sum_{Tsubseteq S,T e varnothing} (-1)^{|T|+1}[ extrm{lcm}(a_i,iin T)|x]igg)cdot igg(sum_{Tsubseteq S} (-1)^{|T|}[xequiv 1pmod{ extrm{lcm}(a_i,iin T)}]igg) ]

    可以枚举 (T)(T') 并计算贡献,等价于求合法的 (x) 的和,这个玩意儿本质上是解模意义方程的问题。

    不难发现 (T~cup~T'=varnothing),于是总枚举量为 (mathcal O(3^{|S|})),预处理 ( m lcm)( m exgcd) 合并方程即可。

    复杂度为 (mathcal O(3^{|S|}log n))

  • 相关阅读:
    Qt环境搭建(Visual Studio)
    HTML基础
    关于Qt
    I am back
    Node Security
    Mobile Assistant
    Home Server
    抉择-什么最重要
    在一个JSP页面中包含另一个JSP页面的三种方式
    JS控制DIV隐藏显示
  • 原文地址:https://www.cnblogs.com/Soulist/p/13899803.html
Copyright © 2011-2022 走看看