首页 > TAG信息列表 > CF1295D

CF1295D Same GCDs

原题链接 题意:求 \(\sum _{x = 0}^{m-1}[gcd(a, m) = gcd(a + x, m)]\) 题解:\(d = gcd(a, m)\) 然后发现 \(gcd(a, m) = gcd(\frac{a}{d}, \frac{m}{d})\) 并且 \((a+m) \mod m\) 的值域是 \(\left [0, m \right )\)。随演变成求 \(\varphi(\frac{m}{d})\) 代码: #include <bi

数论+容斥——cf1295D

/* d=(a,m),a=pd,m=qd,(p,q)=1 (pd+x,qd)=d,设x=td (pd+td,qd)=d => (p+t,q)=1 => (p',q)=1,p<=p'<p+q 处理出q的所有质因子,然后用这些质因子在区间[p,p+q-1]里筛 */ #include<bits/stdc++.h> using namespace std; #define ll long long ll T,a,m,d; ll prime[2

CF1295D Same GCDs

我的blog 题目链接:CF1295D Same GCDs \[description\] 给定\(a,m\),求出有多少个\(x\)满足\(0\leq x<m\)且 \[gcd(a,m)=gcd(a+x,m)\] \(gcd(x,y)\)表示\(x\)和\(y\)的最大公因数 \[solution\] 数论题 考虑设\(d=gcd(a,m)\) 肯定满足\(d|a,d|m,d|(a+x)\) \(\therefore d|x\) 结