Luogu P6055 [RC-02] GCD(莫比乌斯反演,杜教筛)(这题乐死我了,真就图一乐呗)
整理的算法模板合集: ACM模板
点我看算法全家桶系列!!!
实际上是一个全新的精炼模板整合计划
Weblink
https://www.luogu.com.cn/problem/P6055
Problem
给出 NNN,求:
∑i=1N∑j=1N∑p=1⌊Nȷ⌋∑q=1⌊Nj⌋[gcd(i,j)=1][gcd(p,q)=1]\sum_{i=1}^{N} \sum_{j=1}^{N} \sum_{p=1}^{\left\lfloor\frac{N}{\jmath}\right\rfloor} \sum_{q=1}^{\left\lfloor\frac{N}{j}\right\rfloor}[\operatorname{gcd}(i, j)=1][\operatorname{gcd}(p, q)=1] i=1∑Nj=1∑Np=1∑⌊ȷN⌋q=1∑⌊jN⌋[gcd(i,j)=1][gcd(p,q)=1]
答案模 998244353998244353998244353。
Solution
这题真是乐死我了,真就图一乐呗
上来怎么看这个 jjj 怎么不顺眼,这不先把 jjj 直接丢回去 ???
然后这题就没了…
随便反演一下,杜教筛随便搞搞就完事了
∑i=1N∑j=1N∑p=1⌊Nj⌋∑q=1⌊Nj⌋[gcd(i,j)=1][gcd(p,q)=1]=∑i=1N∑j=1N∑p=1N∑q=1N[gcd(i,j)=1][gcd(p,q)=j]=∑i=1N∑p=1N∑q=1N[gcd(i,p,q)=1]=∑i=1N∑p=1N∑q=1N∑d∣gcd(i,p,q)μ(d)=∑d=1N∑i=1N∑p=1N∑q=1N[d∣i][d∣p][d∣q]μ(d)=∑d=1N∑i=1⌊Nd⌋∑p=1⌊Nd⌋∑q=1⌊Nd⌋μ(d)=∑d=1Nμ(d)⌊Nd⌋3\begin{aligned} &\ \ \ \ \ \sum_{i=1}^N\sum_{j=1}^N\sum_{p=1}^{\left\lfloor\frac N j\right\rfloor}\sum_{q=1}^{\left\lfloor\frac N j\right\rfloor}[\gcd(i, j)=1][\gcd(p, q)=1]&\\& =\sum_{i=1}^N\sum_{j=1}^N\sum_{p=1}^{N}\sum_{q=1}^{N}[\gcd(i, j)=1][\gcd(p, q)=j]&\\& =\sum_{i=1}^N\sum_{p=1}^{N}\sum_{q=1}^{N}[\gcd(i, p,q)=1]&\\& =\sum_{i=1}^N\sum_{p=1}^{N}\sum_{q=1}^{N}\sum_{d\mid \gcd(i,p,q)}\mu(d)&\\& =\sum_{d=1}^N\sum_{i=1}^N\sum_{p=1}^{N}\sum_{q=1}^{N}[d\mid i][d\mid p][d\mid q]\mu(d)&\\& =\sum_{d=1}^N\sum_{i=1}^{\left\lfloor\frac N d\right\rfloor }\sum_{p=1}^{\left\lfloor\frac N d\right\rfloor }\sum_{q=1}^{\left\lfloor\frac N d\right\rfloor}\mu(d)&\\& =\sum_{d=1}^N\mu(d)\left\lfloor\frac N d\right\rfloor^3 \end{aligned} i=1∑Nj=1∑Np=1∑⌊jN⌋q=1∑⌊jN⌋[gcd(i,j)=1][gcd(p,q)=1]=i=1∑Nj=1∑Np=1∑Nq=1∑N[gcd(i,j)=1][gcd(p,q)=j]=i=1∑Np=1∑Nq=1∑N[gcd(i,p,q)=1]=i=1∑Np=1∑Nq=1∑Nd∣gcd(i,p,q)∑μ(d)=d=1∑Ni=1∑Np=1∑Nq=1∑N[d∣i][d∣p][d∣q]μ(d)=d=1∑Ni=1∑⌊dN⌋p=1∑⌊dN⌋q=1∑⌊dN⌋μ(d)=d=1∑Nμ(d)⌊dN⌋3
%
时间复杂度 O(n23)O(n^{\frac 2 3})O(n32)。
20分钟水一道紫题 ^q^
Code
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int maxn = 2e6 + 7, mod = 998244353;ll n, m, s, t;
ll ans;
int primes[maxn], cnt;
bool vis[maxn];
ll mu[maxn];
unordered_map <ll, ll> sum_mu;void prework(int n)
{mu[1] = 1;for (int i = 2; i <= n; ++ i) {if(vis[i] == 0) {primes[ ++ cnt] = i;mu[i] = -1;}for (int j = 1; j <= cnt && i * primes[j] <= n; ++ j) {vis[i * primes[j]] = 1;if(i % primes[j] == 0) break;mu[i * primes[j]] -= mu[i];}}for (int i = 1; i <= n; ++ i) {mu[i] += mu[i - 1];}
}int g_sum(int x)
{return x;
}inline int get_sum_mu(int x)
{if(x <= maxn - 10) return mu[x];if(sum_mu.find(x) != sum_mu.end()) return sum_mu[x];ll ans = 1;for (ll l = 2, r; l <= x; l = r + 1) {r = x / (x / l);ans -= (g_sum(r) - g_sum(l - 1)) * get_sum_mu(x / l);}return sum_mu[x] = ans / g_sum(1);
}int main()
{// int ^q^; prework(maxn - 7);t = 1;while(t -- ) {ans = 0;scanf("%lld", &n);for (ll l = 1, r = 0; l <= n; l = r + 1) {r = n / (n / l);ll _ = (n / l) * (n / l) % mod * (n / l) % mod; ans = (ans + (get_sum_mu(r) - get_sum_mu(l - 1) + mod) % mod * _ % mod) % mod;}printf("%lld\n", ans);}return 0;
}
Luogu P6055 [RC-02] GCD(莫比乌斯反演,杜教筛)(这题乐死我了,真就图一乐呗)相关推荐
- [复习]莫比乌斯反演,杜教筛,min_25筛
[复习]莫比乌斯反演,杜教筛,min_25筛 莫比乌斯反演 做题的时候的常用形式: \[\begin{aligned}g(n)&=\sum_{n|d}f(d)\\f(n)&=\sum_ ...
- 【bzoj4176】Lucas的数论 莫比乌斯反演+杜教筛
题目描述 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目"求Sigma(f(i)),其中1<=i<=N" ...
- P4450-双亲数,P5221-Product,P6055-[RC-02]GCD【莫比乌斯反演,杜教筛】
除了最后一题都比较简单就写一起了 P4450-双亲数 题目链接:https://www.luogu.com.cn/problem/P4450 题目大意 给出A,B,dA,B,dA,B,d求有多少对(a ...
- 牛客练习赛84F-牛客推荐系统开发之下班【莫比乌斯反演,杜教筛】
正题 题目链接:https://ac.nowcoder.com/acm/contest/11174/F 题目大意 给出n,kn,kn,k求 ∑i1=1n∑i2=1n...∑ik=1ngcd(fi1,f ...
- matlab狄利克雷函数,数论入门1——莫比乌斯函数,欧拉函数,狄利克雷卷积,线性筛,莫比乌斯反演,杜教筛...
数论入门1 一个菜鸡对数论的一点点理解... 莫比乌斯函数 定义函数$\mu(n)$为: 当n有平方因子时,$\mu(n)=0$. 当n没有平方因子时,$\mu(n)=(-1)^{\omega(n)} ...
- 牛客P19836 裴蜀定理+莫比乌斯反演+杜教筛
题意: 一开始一个人在原点,它拥有 n n n个整数 x i x_{i} xi,并且 x i ∈ [ 1 , m ] x_{i}\in[1,m] xi∈[1,m],他每次可以选择一个 x i x_ ...
- 【LOJ#572】Misaka Network 与求和(莫比乌斯反演/杜教筛/min_25筛)
[LOJ#572]Misaka Network 与求和 https://www.cnblogs.com/cjyyb/p/10170630.html 看到次大质因子就可以想到是min_25筛了,然后只需 ...
- 51nod1220-约数之和【莫比乌斯反演,杜教筛】
正题 题目链接:http://www.51nod.com/Challenge/Problem.html#problemId=1220 题目大意 给出nnn,求∑i=1n∑j=1nσ(i∗j)\sum_ ...
- P3768-简单的数学题【莫比乌斯反演,杜教筛】
正题 题目链接:https://www.luogu.com.cn/problem/P3768 题目大意 给出n,pn,pn,p求∑i=1n∑j=1ngcd(i,j)∗i∗j\sum_{i=1}^n\s ...
- CCPC-Wannafly Winter Camp Day3 (Div2, onsite) F 小清新数论 欧拉函数的利用 莫比乌斯反演 杜教筛
F - 小清新数论 做法一:欧拉函数 #include<stdio.h> #include<bits/stdc++.h> using namespace std; #defin ...
最新文章
- PC上安装MAC X Lion
- Proxool 连接池销毁问题
- FPGA实现序列检测(训练testbench写法)
- 交换机短路_融商通达变频器功率模块短路维修故障案例
- SAP Spartacus scss里的--cx-color-primary
- JavaEE还是Spring? 都不行! 我们呼吁新的竞争者!
- 【Leetcode | 1】3. 无重复字符的最长子串
- leetcode 764.Largest Plus Sign
- Python编程从入门到实践~字典
- oracle能不能改外键属性,CSS_小议Oracle外键约束修改行为(五), Oracle的外键用来限制子表 - phpStudy...
- 从零学ELK系列(十一):SpringBoot项目接入ELK超级版(超详细图文教程)
- 动态绑定dropdownlist --开始拣.NET
- 如何构建高效可信的持续交付能力,华为云有绝活!
- 马斯克 的 2500 吨 推力 的 大火箭 没什么 了不起
- EXCEL区分两列名单中不重复的人,以及统计单列名单人员的重复次数
- 计算机系统结构同济大学张晨曦,《计算机系统结构教程(21世纪大学本科计算机专业系列教材)》- 张晨曦 等编著 - 读书评论 - 价值网...
- Postman 是一个接口测试和 http 请求的神器,非常好用。
- C语言求某天是一年里的第几天(详细)
- vue可视化拖拽生成工具_一款可拖拽的WEB表单设计布局器-(echarts-vue-jquery-可视化图表)...
- 举报合肥极宝网络信息科技有限公司,骗子平台