题目大意:

表格中每一个位置(i,j)填的值是lcm(i,j) , 求n*m的表格值有多大

论文贾志鹏线性筛中过程讲的很好

最后的逆元我利用的是欧拉定理求解的

我这个最后线性扫了一遍,勉强过了,效率不是很高。。。

 /*bzoj 2154*/
#include <bits/stdc++.h> using namespace std;
#define ll long long
#define N 10000000
const int MOD = ;
int mu[N+] , prime[N+] , f[N+] , tot;
bool check[N+]; void init()
{
mu[] = , f[] = ;
for(int i= ; i<=N ; i++){
if(!check[i]){
prime[tot++] = i;
mu[i] = -;
f[i] = -i;
}
for(int j= ; j<tot ; j++){
if((ll)prime[j]*i>N) break;
check[prime[j]*i] = true;
if(i%prime[j]){
mu[prime[j]*i] = -mu[i];
f[prime[j]*i] = ((ll)f[prime[j]]*f[i])%MOD;
}else{
f[prime[j]*i] = f[i];
break;
}
}
}
} int q_pow(int b)
{
ll ans = , a=;
while(b)
{
if(b&) ans = (ans*a)%MOD;
a = (a*a)%MOD;
b>>=;
}
return (int)ans;
} int solve(int n , int m)
{
if(n>m) swap(n , m);
ll ret = ;
for(int k= ; k<=n ; k++){
ll a = n/k , b = m/k;
ret = (ret+(k*(+a)%MOD)*a%MOD*b%MOD*(+b)%MOD*f[k]%MOD)%MOD;
}
ret = ((ll)ret*q_pow(MOD-)%MOD+MOD)%MOD;
return (int)ret;
} int main()
{
// freopen("in.txt" , "r" , stdin);
init();
int n , m;
/* for(int i=2 ; i<=100000 ; i++)
if(!check[i] && MOD%i==0) cout<<i<<" yes "<<endl;*/
while(~scanf("%d%d" , &n , &m)){
printf("%d\n" , solve(n , m));
}
return ;
}

bzoj 2154 莫比乌斯反演求lcm的和的更多相关文章

  1. 【题解】Crash的数字表格 BZOJ 2154 莫比乌斯反演

    题目传送门 http://www.lydsy.com/JudgeOnline/problem.php?id=2154 人生中第一道自己做出来的莫比乌斯反演 人生中第一篇用LaTeX写数学公式的博客 大 ...

  2. 莫比乌斯反演求LCM的另一种做法

    一个经典问题 求 \[ \sum_{k=1}^n\mathbb{lcm}(k,n) \] 一般的做法是使用\(\varphi(n)\)函数. 不经典的做法 \[ \begin{align*} \sum ...

  3. BZOJ 3309 莫比乌斯反演

    题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=3309 题意:定义f(n)为n所含质因子的最大幂指数,求 $Ans=\sum _{i=1} ...

  4. BZOJ 2301 莫比乌斯反演入门

    2301: [HAOI2011]Problem b Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函 ...

  5. bzoj 2301 莫比乌斯反演

    对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 这里题目意思很明显 对于要求的f[n] = sig ...

  6. bzoj 1101 莫比乌斯反演

    最裸的莫比乌斯 #include<bits/stdc++.h> #define LL long long #define fi first #define se second #defin ...

  7. bzoj 2820 莫比乌斯反演

    搞了一整个晚自习,只是看懂了dalao们的博客,目前感觉没有思路-.还是要多切题 next day: 刚才又推了一遍,发现顺过来了,hahaha #include<cstdio> #inc ...

  8. BZOJ - 2818 莫比乌斯反演 初步

    要使用分块的技巧 #include<iostream> #include<algorithm> #include<cstdio> #include<cstri ...

  9. bzoj 2671 莫比乌斯反演

    Calc Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 451  Solved: 234[Submit][Status][Discuss] Descr ...

随机推荐

  1. js object(对象)

    http://www.cnblogs.com/pingchuanxin/p/5773326.html Object(对象)是在所有的编程语言中都十分重要的一个概念,对于事物我们可以把他们看作是一个对象 ...

  2. linux GO语言配置安装

    1.下载地址 https://golang.org/dl/ 2.解压 解压到/usr/local/go目录下 cd /usr/local/go bin/go version 执行如上命令出现go的版本 ...

  3. 【Linux系统】防暴力破解

    在日志文件/var/log/secure 中可以看到涉及到安全方面的日志,可以查看是否有人尝试暴力破解及是否成功,对于肉鸡行为有一定帮助 思路基本上都是加强密码的复杂度,增加iptables配置黑名单 ...

  4. D3.js 饼状图的制作

    1.数据 有如下数据,需要可视化: var dataset = [ 30 , 10 , 43 , 55 , 13 ]; 这样的值是不能直接绘图的.例如绘制饼状图的一个部分,需要知道一段弧的起始角度和终 ...

  5. hiho_1069_最近公共祖先3

    题目 给出一棵家族树,树上的节点可以由名字唯一标识.给出若干个查询,查询的内容为两个名字,结果为两个名字的最近公共祖先. 题目链接: 最近公共祖先 分析 在线的RMQ + LCA 算法,先用dfs将树 ...

  6. 【c++】读写txt

    #include<iostrea> #include<fstream> int main() { ofstream fout;// 创建一个ofstream对象 fout.op ...

  7. 资源 之 4.2 内置Resource实现(拾)

    4.2  内置Resource实现 4.2.1  ByteArrayResource ByteArrayResource代表byte[]数组资源,对于"getInputStream" ...

  8. DI 之 3.1 DI的配置使用(肆)

    3.1.1  依赖和依赖注入 传统应用程序设计中所说的依赖一般指"类之间的关系",那先让我们复习一下类之间的关系: 泛化:表示类与类之间的继承关系.接口与接口之间的继承关系: 实现 ...

  9. input上传图片预览

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...

  10. ccs6.0使用问题记录

    ccs6.0使用问题记录 彭会锋 1 编译过程中提示warning  " Description Resource Path Location Type #9-D nested commen ...