在集合 $[n]$ 上使用容斥原理。

固定 $i$,考虑有多少个 $j \in [n]$ 满足 $\gcd(i, j) = \gcd(a_i, a_j) = 1$,将此数目记作 $f_i$。暂时不考虑条件 $ i \le j $ 。

考虑 $[n]$ 的某些子集。$S_{x,y} := \{ i\in [n] \colon x\mid i, y \mid a_i \}$

以 $a_6 = 4$ 为例,$6$ 的素因子有 $2, 3$,$4$ 的素因子有 $2$ 。

考虑集合 $S_{1, 2}, S_{2, 1}, S_{2, 2}, S_{3, 1}, S_{3, 2}$,对这些集合用容斥原理(即求出 $[n]$ 中【不属于这些集合中的任一集合】的元素有多少个)即可求得 $f_i$ 。

在对 $S_1, S_2, \dots, S_n$ 用容斥原理时,若 $S_i \subset S_j$($i\ne j$)则可将 $S_i$ 去掉。

注意到 $S_{3,2}, S_{2, 2}$ 都是 $S_{1, 2}$ 的子集,所以有些子集是不用考虑的。实际上我们考虑
$S_{1, 2}, S_{2, 1}, S_{3, 1}$ 即可。

将 $i$ 的素因子个数记作 $c_i$。求解 $f_i$ 需要计算 $2^{c_i + c_{a_i} }$ 个集合的基数。

机械地采用容斥原理其实做了很多重复计算。

容斥原理涉及求一些集合的交集的基数,这些交集可表为 $S_{x, y}$ 其中 $x, y$ 都是若干个素数的乘积。

设 $A, B$ 为一些质数的集合,$p_A, p_B$ 分别为其中元素的乘积($p_{\emptyset} = 1$)。以下也将 $S_{p_A,p_B}$ 写作 $S_{A,B}$ 。

在使用容斥原理时我们实际上是要求 $|S_{A,B}|$,注意到 $|S_{A,B}|$ 每次出现,其系数都是 $-1^{|A|+|B|}$,故我们考虑 $|S_{A,B}|$ 出现了多少次。易见,$|S_{A,B}|$ 出现在 $f_i$ 的表达式中当且 $p_A\mid i$ 且 $p_B \mid a_i$,故 $|S_{A,B}|$ 出现了 $|S_{A,B}|$ 次。因此有
\begin{equation}
\sum_i f_i = \sum_{A,B} (-1)^{|A|+|B|} |S_{A,B}|^2
\end{equation}

\begin{equation}
|S_{A,B}| =\sum_i [p_A|i,\,p_B|a_i] = \sum_{k} [p_B \mid a_{kp_A}]
\end{equation}
于是
\begin{equation}
\sum_i f_i = \sum_{A,B} (-1)^{|A|+|B|} \left( \sum_{k} [p_B \mid a_{kp_A}] \right)^2 \label{E:3}
\end{equation}
借助 Möbius 函数,\eqref{E:3} 可写成
\begin{equation}
\sum_i f_i = \sum_{x}\mu(x) \sum_y \mu(y) \left( \sum_{k} [y \mid a_{kx}] \right)^2
\end{equation}

计算方法:枚举 $x$,枚举 $k$,枚举 $y$($y$ 是 $kx$ 的因子),为每个 $\mu(y)\ne 0$ 的 $y$ 维护一个计数器,并将这些 $y$ 放入一个列表。

hihoCoder #1867 GCD的更多相关文章

  1. HihoCoder - 1867: GCD (莫比乌斯容斥)

    Sample Input 6 1 6 2 5 3 4 Sample Output 10 You are given a {1, 2, ..., n}-permutation a[1], a[2], . ...

  2. ACM学习历程—Hihocoder 1177 顺子(模拟 && 排序 && gcd)(hihoCoder挑战赛12)

      时间限制:6000ms 单点时限:1000ms 内存限制:256MB   描述 你在赌场里玩梭哈,已经被发了4张牌,现在你想要知道发下一张牌后你得到顺子的概率是多少? 假定赌场使用的是一副牌,四种 ...

  3. hihocoder #1177 : 顺子 模拟

    #1177 : 顺子 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/problemset/problem/1177 ...

  4. hihocoder 1077线段树

    http://hihocoder.com/problemset/problem/1077 #include <bits/stdc++.h> using namespace std; #de ...

  5. hihoCoder #1037 : 数字三角形 (动态规划)

    题目链接:https://hihocoder.com/problemset/problem/1037# 问题描述 小Hi和小Ho在经历了螃蟹先生的任务之后被奖励了一次出国旅游的机会,于是他们来到了大洋 ...

  6. hihocoder 1330 - 数组重排 - [hiho一下167周][最小公倍数]

    题目链接:https://hihocoder.com/problemset/problem/1330 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi想知道,如果他 ...

  7. 2017北京网络赛 Bounce GCD加找规律

    题目链接:http://hihocoder.com/problemset/problem/1584 题意:就是求一个小球从矩阵的左上角,跑到矩形的右下角不能重复经过的格子,小球碰到墙壁就反射. 解法: ...

  8. HihoCoder 1473 : 小Ho的强迫症( 欧几里得 )

    描述 小Ho在一条笔直的街道上散步.街道上铺着长度为L的石板,所以每隔L距离就有一条石板连接的缝隙,如下图所示. 小Ho在散步的时候有奇怪的强迫症,他不希望脚踩在石板的缝隙上.(如果小Ho一只脚的脚尖 ...

  9. hihoCoder 1584 Bounce 【数学规律】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)

    #1584 : Bounce 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 For Argo, it is very interesting watching a cir ...

随机推荐

  1. mac 远程桌面提示: 证书或相关链无效

    左上角 RDC -->首选项-->安全性-->即使验证失败,也始终链接

  2. kubernetes-控制器Deployment和DaemonSet(八)

    Pod与controllers的关系 •controllers:在集群上管理和运行容器的对象•通过label-selector相关联•Pod通过控制器实现应用的运维,如伸缩,升级等 控制器又称工作负载 ...

  3. C# 运用DirectoryInfo类和FileInfo类

    DirectoryInfo类和FileInfo类的基类都是FileSystemInfo类,这个类是一个抽象类,也就是说你不可以实例化该类,只能通过继承产生其子类并实例化其子类.然而你却可以运用由该类定 ...

  4. java 代码优化

    Java程序中的内存管理机制是通过GC完成的,“一个对象创建后被放置在JVM的堆内存中,当永远不在应用这个对象的时候将会被JVM在堆内存中回收.被创建的对象不能再生,同时也没有办法通过程序语句释放”( ...

  5. 博学谷-数据分析matplotlib

    博学谷-数据分析 python数学学科的基础 机器学习课程的基础 1.1 介绍 1.2 jupyter和conda 1.3 matplotlib from matplotlib import pypl ...

  6. Maven和Gradle对比(转载)

    转载出处:http://www.cnblogs.com/huang0925 Java世界中主要有三大构建工具:Ant.Maven和Gradle.经过几年的发展,Ant几乎销声匿迹.Maven也日薄西山 ...

  7. vue.js 一(基础环境搭建)

    之前由于看了React的东西,写了两篇React的脚手架搭建,一是给自己记一点可用的东西,免得每次都去找,毕竟搭建环境在项目相对固定的时期不是经常要干的事情,一段时间不用就会忘记了. 前端的js框架还 ...

  8. webpack的配置处理

    1.webpack对脚本的处理 1.Js用什么loader加载? 1>webpack 本身就支持js的加载, 2>通过babel-loader ES2015 加载js,再用 babel-p ...

  9. [BZOJ1187]神奇游乐园(插头DP)

    Description 题意给定一个矩阵,每个格子有权值,在[-1000.1000]内,求一条回路使得回路经过权值和最大,每个格子最多经过一次 2≤n≤100,2≤m≤6 Code #include ...

  10. 2018年湘潭大学程序设计竞赛 E 吃货

    题目描述 作为一个标准的吃货,mostshy又打算去联建商业街觅食了.混迹于商业街已久,mostshy已经知道了商业街的所有美食与其价格,而且他给每种美食都赋予了一个美味度,美味度越高表示他越喜爱这种 ...