hdu6390 /// 欧拉函数+莫比乌斯反演 筛inv[] phi[] mu[]
题目大意:
给定m n p 求下式
题解:https://blog.csdn.net/codeswarrior/article/details/81700226
莫比乌斯讲解:https://www.cnblogs.com/peng-ym/p/8647856.html
莫比乌斯的mu[]:https://www.cnblogs.com/cjyyb/p/7953803.html
- #include <bits/stdc++.h>
- using namespace std;
- #define LL long long
- #define INF 0x3f3f3f3f
- #define mem(i,j) memset(i,j,sizeof(i))
- const int N=1e6+;
- LL mu[N], phi[N];
- LL inv[N];
- int n,m,p;
- void initinv() {
- inv[]=;
- for(int i=;i<N;i++)
- inv[i]=inv[p%i]*(LL)(p-p/i)%p;
- } // 逆元
- void init() {
- for(int i=;i<N;i++) phi[i]=i;
- for(int i=;i<N;i++)
- if(i==phi[i]) {
- for(int j=i;j<N;j+=i)
- phi[j]=phi[j]/i*(i-);
- }
- mem(mu,); mu[]=;
- for(int i=;i<N;i++)
- for(int j=i*;j<N;j+=i)
- mu[j]-=mu[i];
- } // 欧拉 莫比乌斯
- LL moblus(int a,int b,int g) {
- LL res=; a/=g,b/=g;
- /// gcd(1~a,1~b)=g -> gcd(1~a/g,1~b/g)=1
- for(int i=;i<=min(a,b);i++)
- res+=(LL)mu[i]*(a/i)*(b/i);
- /// mu[i] * (1~a,1~b)中[gcd=g或g的倍数]的数量
- return res;
- }
- int main()
- {
- init();
- int t; scanf("%d",&t);
- while(t--) {
- scanf("%d%d%d",&m,&n,&p);
- LL ans=; initinv();
- for(int i=;i<=min(m,n);i++) {
- LL uF=moblus(n,m,i)%p;
- ans=(ans+uF*i%p*inv[phi[i]]%p)%p;
- }
- printf("%lld\n",ans);
- }
- return ;
- }
hdu6390 /// 欧拉函数+莫比乌斯反演 筛inv[] phi[] mu[]的更多相关文章
- 中国剩余定理 & 欧拉函数 & 莫比乌斯反演 & 狄利克雷卷积 & 杜教筛
ssplaysecond的博客(请使用VPN访问): 中国剩余定理: https://ssplaysecond.blogspot.jp/2017/04/blog-post_6.html 欧拉函数: h ...
- 51nod 1237 最大公约数之和 V3【欧拉函数||莫比乌斯反演+杜教筛】
用mu写lcm那道卡常卡成狗(然而最后也没卡过去,于是写一下gcd冷静一下 首先推一下式子 \[ \sum_{i=1}^{n}\sum_{j=1}^{n}gcd(i,j) \] \[ \sum_{i= ...
- UVA11426 GCD - Extreme (II) (欧拉函数/莫比乌斯反演)
UVA11426 GCD - Extreme (II) 题目描述 PDF 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 10 100 200000 0 输出样例#1: 67 13 ...
- 洛谷P2568 GCD (欧拉函数/莫比乌斯反演)
P2568 GCD 题目描述 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 输入输出格式 输入格式: 一个整数N 输出格式: 答案 输入输出样例 输入 ...
- ACM学习历程—HYSBZ 2818 Gcd(欧拉函数 || 莫比乌斯反演)
Description 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. Input 一个整数N Output 如题 Sample Input 4 Sam ...
- BZOJ 2818 GCD 【欧拉函数 || 莫比乌斯反演】
传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=2818 2818: Gcd Time Limit: 10 Sec Memory Limit ...
- bzoj 2818 Gcd(欧拉函数 | 莫比乌斯反演)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2818 [题意] 问(x,y)为质数的有序点对的数目. [思路一] 定义f[i]表示i之 ...
- 洛谷 - P3768 - 简单的数学题 - 欧拉函数 - 莫比乌斯反演
https://www.luogu.org/problemnew/show/P3768 \(F(n)=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}ijgcd(i ...
- 【bzoj4804】欧拉心算 莫比乌斯反演+莫比乌斯函数性质+线性筛
Description 给出一个数字N 求\(\sum_{i=1}^{n}\sum_{j=1}^{n}\varphi(gcd(i,j))\) Input 第一行为一个正整数T,表示数据组数. 接下来T ...
随机推荐
- linux下安装JMeter(小白教程)
用windows平台测试时,会受到网络条件的影响,导致测试结果不够准确,尤其是高并发的情况下,需要能够精准的测试请求的响应时长,对于网络的要求更加苛刻.在这样的情况下,可以考虑在linux服务器端安装 ...
- JWT工具类
package com.ynhrm.common.utils; import io.jsonwebtoken.Claims;import io.jsonwebtoken.JwtBuilder;impo ...
- Java-技术专区-问题专区-应该了解的基础技术点
Java基础 Arrays.sort实现原理和Collection实现原理 foreach和while的区别(编译之后) 线程池的种类,区别和使用场景 分析线程池的实现原理和线程的调度过程 线程池如何 ...
- ASE团队项目alpha阶段Frontend组 scrum2 记录
ASE团队项目alpha阶段Frontend组 scrum2 记录 本次会议于11.5日, 11:30在微软北京西二楼13158研讨室,讨论持续15分钟 与会人员:Jingyi Xie, Jiaqi ...
- linux常用命令-1系统相关命令
hostname #计算机名 passwd #修改密码 reboot #重启 shutdown –r now #立刻重启(root用户使用) shutdown –r 10 #过10分钟自动重启(roo ...
- 深入理解java虚拟机JVM(下)
深入理解java虚拟机JVM(下) 链接:https://pan.baidu.com/s/1c6pZjLeMQqc9t-OXvUM66w 提取码:uwak 复制这段内容后打开百度网盘手机App,操作更 ...
- nodejs 进阶:图片缩小
demo 效果: 代码: /** * Created by ZXW on 2017/10/30. */ var fs = require('fs'); var gm = require('gm'); ...
- 简单记录下Jmeter通过CSV保存测试数据,测试用例,及将测试结果导出到Excel里
1.CSV保存测试数据,并上传到CSV Data Set Config,设置相关属性 2.CSV保存测试用例,并上传到CSV Data Set Config,设置相关属性 3.设置一个http请求,设 ...
- 组合数学(math)
组合数学(math) 题目描述 为了提高智商,zjy开始学习组合数学.某一天她解决了这样一个问题:“给一个网格图,其中某些格子有财宝.每次从左上角出发,只能往右或下走.问至少要走几次才能把财宝全部捡完 ...
- es批量索引
使用Python操作Elasticsearch数据索引的教程 这篇文章主要介绍了使用Python操作Elasticsearch数据索引的教程,Elasticsearch处理数据索引非常高效,要的朋友可 ...