整理的算法模板合集: 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∑N​j=1∑N​p=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∑N​j=1∑N​p=1∑⌊jN​⌋​q=1∑⌊jN​⌋​[gcd(i,j)=1][gcd(p,q)=1]=i=1∑N​j=1∑N​p=1∑N​q=1∑N​[gcd(i,j)=1][gcd(p,q)=j]=i=1∑N​p=1∑N​q=1∑N​[gcd(i,p,q)=1]=i=1∑N​p=1∑N​q=1∑N​d∣gcd(i,p,q)∑​μ(d)=d=1∑N​i=1∑N​p=1∑N​q=1∑N​[d∣i][d∣p][d∣q]μ(d)=d=1∑N​i=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(莫比乌斯反演,杜教筛)(这题乐死我了,真就图一乐呗)相关推荐

  1. [复习]莫比乌斯反演,杜教筛,min_25筛

    [复习]莫比乌斯反演,杜教筛,min_25筛 莫比乌斯反演 做题的时候的常用形式: \[\begin{aligned}g(n)&=\sum_{n|d}f(d)\\f(n)&=\sum_ ...

  2. 【bzoj4176】Lucas的数论 莫比乌斯反演+杜教筛

    题目描述 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目"求Sigma(f(i)),其中1<=i<=N" ...

  3. P4450-双亲数,P5221-Product,P6055-[RC-02]GCD【莫比乌斯反演,杜教筛】

    除了最后一题都比较简单就写一起了 P4450-双亲数 题目链接:https://www.luogu.com.cn/problem/P4450 题目大意 给出A,B,dA,B,dA,B,d求有多少对(a ...

  4. 牛客练习赛84F-牛客推荐系统开发之下班【莫比乌斯反演,杜教筛】

    正题 题目链接:https://ac.nowcoder.com/acm/contest/11174/F 题目大意 给出n,kn,kn,k求 ∑i1=1n∑i2=1n...∑ik=1ngcd(fi1,f ...

  5. matlab狄利克雷函数,数论入门1——莫比乌斯函数,欧拉函数,狄利克雷卷积,线性筛,莫比乌斯反演,杜教筛...

    数论入门1 一个菜鸡对数论的一点点理解... 莫比乌斯函数 定义函数$\mu(n)$为: 当n有平方因子时,$\mu(n)=0$. 当n没有平方因子时,$\mu(n)=(-1)^{\omega(n)} ...

  6. 牛客P19836 裴蜀定理+莫比乌斯反演+杜教筛

    题意: 一开始一个人在原点,它拥有 n n n个整数 x i x_{i} xi​,并且 x i ∈ [ 1 , m ] x_{i}\in[1,m] xi​∈[1,m],他每次可以选择一个 x i x_ ...

  7. 【LOJ#572】Misaka Network 与求和(莫比乌斯反演/杜教筛/min_25筛)

    [LOJ#572]Misaka Network 与求和 https://www.cnblogs.com/cjyyb/p/10170630.html 看到次大质因子就可以想到是min_25筛了,然后只需 ...

  8. 51nod1220-约数之和【莫比乌斯反演,杜教筛】

    正题 题目链接:http://www.51nod.com/Challenge/Problem.html#problemId=1220 题目大意 给出nnn,求∑i=1n∑j=1nσ(i∗j)\sum_ ...

  9. 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 ...

  10. CCPC-Wannafly Winter Camp Day3 (Div2, onsite) F 小清新数论 欧拉函数的利用 莫比乌斯反演 杜教筛

    F - 小清新数论 做法一:欧拉函数 #include<stdio.h> #include<bits/stdc++.h> using namespace std; #defin ...

最新文章

  1. PC上安装MAC X Lion
  2. Proxool 连接池销毁问题
  3. FPGA实现序列检测(训练testbench写法)
  4. 交换机短路_融商通达变频器功率模块短路维修故障案例
  5. SAP Spartacus scss里的--cx-color-primary
  6. JavaEE还是Spring? 都不行! 我们呼吁新的竞争者!
  7. 【Leetcode | 1】3. 无重复字符的最长子串
  8. leetcode 764.Largest Plus Sign
  9. Python编程从入门到实践~字典
  10. oracle能不能改外键属性,CSS_小议Oracle外键约束修改行为(五), Oracle的外键用来限制子表 - phpStudy...
  11. 从零学ELK系列(十一):SpringBoot项目接入ELK超级版(超详细图文教程)
  12. 动态绑定dropdownlist --开始拣.NET
  13. 如何构建高效可信的持续交付能力,华为云有绝活!
  14. 马斯克 的 2500 吨 推力 的 大火箭 没什么 了不起
  15. EXCEL区分两列名单中不重复的人,以及统计单列名单人员的重复次数
  16. 计算机系统结构同济大学张晨曦,《计算机系统结构教程(21世纪大学本科计算机专业系列教材)》- 张晨曦 等编著 - 读书评论 - 价值网...
  17. Postman 是一个接口测试和 http 请求的神器,非常好用。
  18. C语言求某天是一年里的第几天(详细)
  19. vue可视化拖拽生成工具_一款可拖拽的WEB表单设计布局器-(echarts-vue-jquery-可视化图表)...
  20. 举报合肥极宝网络信息科技有限公司,骗子平台

热门文章

  1. 机器学习要警惕的4个常见陷阱!
  2. 竟有内鬼!北理工硕士生「复制粘贴」论文,旷视研究员最新声明
  3. 只用一张训练图像进行图像的恢复
  4. ACL 2018最佳论文公布!计算语言学最前沿研究都在这里了
  5. (一)检测浏览器是否支持websocket
  6. JS---设计简易日历
  7. How to install sougoupinyin on Debian/Ubuntu.
  8. MIT自然语言处理第五讲:最大熵和对数线性模型(第一部分)
  9. 妙用终截者密码锁防***注入Explorer
  10. mysql view 能和表关联吗_MySQL 事务隔离及实现,赶快码上收藏!满满干货