Atcoder abc230
https://atcoder.jp/contests/abc230/tasks
G - GCD Permutation
给一个1~N的排列p
问有多少个有序对 (i,j), (i<=j), 满足 gcd(i,j) != 1, gcd(p[i],p[j]) != 1
范围
n 2e5
5s
1024mb
我的思路
有点想暴力 然后证明复杂度?
对于 (i,Pi), 取两个中较小的一个, 找所有包含它下标的, 用较大的去验证gcd
最多有6个不同质数因子, 最坏情况 1/2+1/3+1/5+1/7+1/11+1/13 = 1.3左右
所以最坏情况是 找n个坐标
先写个代码再说
https://atcoder.jp/contests/abc230/submissions/34500571
显然 有很多是2 的倍数的,它们如果每个都会去访问n/2, 那么已经就是n^2了, 肯定会超时
想法就是 如果 (2的倍数,3的倍数) 之类做容斥? 但是我容斥完全不会