Coprime Arrays 啊,我感觉我更本不会莫比乌斯啊啊啊, 感觉每次都学不会, 我好菜啊. #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define PLL pair<LL, LL> #define PLI pair<LL, int> #define PII pair<int, int> #d…
Coprime Arrays CodeForces - 915G Let's call an array a of size n coprime iff gcd(a1, a2, ..., *a**n) = 1, where gcd* is the greatest common divisor of the arguments. You are given two numbers n and k. For each i (1 ≤ i ≤ k) you have to determine the…
[题目]G. Coprime Arrays [题意]当含n个数字的数组的总gcd=1时认为这个数组互质.给定n和k,求所有sum(i),i=1~k,其中sum(i)为n个数字的数组,每个数字均<=i,总gcd=1的方案数.n<=2*10^6.答案将所有sum(i)处理成一个数字后输出. [算法]数论(莫比乌斯反演) [题解]假设当前求sum(k),令f(i)表示gcd=i的数组方案数,F(i)表示i|gcd的数组的方案数. 因为F(x)=Σx|df(d),由莫比乌斯反演定理,f(x)=Σx|d…
传送门 差分是真心人类智慧--完全不会 这么经典的式子肯定考虑莫比乌斯反演,不难得到\(b_k = \sum\limits_{i=1}^k \mu(i) \lfloor\frac{k}{i} \rfloor^n\) 直接做是\(O(n\sqrt{n})\)的不够优秀,但是我们需要求的是\(b_1\)到\(b_K\)而不是单独的一个\(b\),这是最重要的一个性质. 考虑每一个数\(p\)对\(b_1\)到\(b_k\)的贡献.因为\(\mu(p)\)不变,所以对于\(\forall k \in…
题意: 有一个\(n*n*n\)的三维直角坐标空间,问从\((0,0,0)\)看能看到几个点. 思路: 按题意研究一下就会发现题目所求为. \[(\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^n[gcd(i,j,k)==1])+(\sum_{i=1}^n\sum_{j=1}^n[gcd(i,j)==1])\\+(\sum_{i=1}^n\sum_{k=1}^n[gcd(i,k)==1])+(\sum_{j=1}^n\sum_{k=1}^n[gcd(j,k)==1]) \]…
题意: \(Q\leq5000\)次询问,每次问你有多少对\((x,y)\)满足\(x\in[1,n],y\in[1,m]\)且\(gcd(x,y)\)的质因数分解个数小于等于\(p\).\(n,m,p\leq5e5\). 思路: 题目即求 \[\sum_{k}\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)=k]\quad,k满足质因数个数\leq p \] 令\(f(n)\)为\(gcd\)为\(n\)的对数,\(F(n)\)为\(gcd\)为\(n\)倍数的对数. 由莫比…
题目链接:http://codeforces.com/gym/101982/attachments 题目大意:有区间[a,b]和区间[c,d],求gcd(x,y)=1,其中x属于[a,b],y属于[c,d],求这样的x,y有多少对. 解题思路: 第一种反演思路: 把下界变换一下 代码: #include<iostream> #include<cstdio> using namespace std; typedef long long ll; ; ll a,b,c,d,mu[maxn…
Gifts 感觉题解写的就是坨不知道什么东西.. 看得这个题解. #include<bits/stdc++.h> #define LL long long #define LD long double #define fi first #define se second #define mk make_pair #define PLL pair<LL, LL> #define PLI pair<LL, int> #define PII pair<int, int&…
看别人写的才学会的... 我们考虑刚开始的一个点, 然后我们枚举接上去的一条一条链, dp[mask]表示当前已经加进去点的状态是mask所需的最少边数. 反正就是很麻烦的一道题, 让我自己写我是写不出来的... 我好菜啊. #include<bits/stdc++.h> #define LL long long #define LD long double #define ull unsigned long long #define fi first #define se second #d…
洛谷 Codeforces 非常套路的一道题,很适合我在陷入低谷时提升信心-- 思路 显然我们需要大力推式子. 设\(p_{a_i}=i\),则有 \[ \begin{align*} n(n-1)ans&=\sum_i \sum_j \varphi(ij)dis(p_i,p_j)\\ &=\sum_i \sum_j \frac{\varphi(i)\varphi(j)\gcd(i,j)}{\varphi(\gcd(i,j))} dis(i,j)\\ &=\sum_d \frac{d…