bzoj 2154 莫比乌斯反演求lcm的和
题目大意:
表格中每一个位置(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的和的更多相关文章
- 【题解】Crash的数字表格 BZOJ 2154 莫比乌斯反演
题目传送门 http://www.lydsy.com/JudgeOnline/problem.php?id=2154 人生中第一道自己做出来的莫比乌斯反演 人生中第一篇用LaTeX写数学公式的博客 大 ...
- 莫比乌斯反演求LCM的另一种做法
一个经典问题 求 \[ \sum_{k=1}^n\mathbb{lcm}(k,n) \] 一般的做法是使用\(\varphi(n)\)函数. 不经典的做法 \[ \begin{align*} \sum ...
- BZOJ 3309 莫比乌斯反演
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=3309 题意:定义f(n)为n所含质因子的最大幂指数,求 $Ans=\sum _{i=1} ...
- BZOJ 2301 莫比乌斯反演入门
2301: [HAOI2011]Problem b Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函 ...
- bzoj 2301 莫比乌斯反演
对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 这里题目意思很明显 对于要求的f[n] = sig ...
- bzoj 1101 莫比乌斯反演
最裸的莫比乌斯 #include<bits/stdc++.h> #define LL long long #define fi first #define se second #defin ...
- bzoj 2820 莫比乌斯反演
搞了一整个晚自习,只是看懂了dalao们的博客,目前感觉没有思路-.还是要多切题 next day: 刚才又推了一遍,发现顺过来了,hahaha #include<cstdio> #inc ...
- BZOJ - 2818 莫比乌斯反演 初步
要使用分块的技巧 #include<iostream> #include<algorithm> #include<cstdio> #include<cstri ...
- bzoj 2671 莫比乌斯反演
Calc Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 451 Solved: 234[Submit][Status][Discuss] Descr ...
随机推荐
- iOS 开发之 Xcode6 installation failed invalid argument!
1.运行模拟器的时候 报出: installation failed invalid argument! 原因分析: 我把Bundle indentifier 置为空了! http://stackov ...
- Spring Bean配置默认为单实例 pring Bean生命周期
Bean默认的是单例的. 如果不想单例需要如下配置:<bean id="user" class="..." scope="singleton&q ...
- 转:从开源项目学习 C 语言基本的编码规则
从开源项目学习 C 语言基本的编码规则 每个项目都有自己的风格指南:一组有关怎样为那个项目编码约定.一些经理选择基本的编码规则,另一些经理则更偏好非常高级的规则,对许多项目而言则没有特定的编码规则,项 ...
- Maven打包遇到的一些问题(zhuan)
http://qqbwww.iteye.com/blog/2042307 **************************************** #Maven打包遇到的一些问题 ## 1.将 ...
- HashMap循环遍历方式及其性能对比(zhuan)
http://www.trinea.cn/android/hashmap-loop-performance/ ********************************************* ...
- CodeIgniter配置之SESSION
刚使用Codeigniter时也被其中的SESSION迷惑过,后来就再也没用过CI自带的SESSION,想必还是有必要整理一下SESSION.为弄清CI中的SESSION,先来说一下PHP中SESSI ...
- Sun Grid Engine (SGE)大型集群作业调度系统
Oracle Grid Engine 作业调度系统的简介(目前为止我用过PBS和SGE) SGE作业调度系统学习笔记 SGE作业调度 USE of Sun Grid Engine(SGE) 待续~
- android中的通信机制总结
第一种:使用handler来进行通信 handler 大家可以把它想象成主线程(UI线程)的一个子线程,它可以给主线程(UI线程)发送数据从而更新主线程(UI线程)的UI与逻辑,handler ...
- (x&y) + ((x^y)>>1)即x和y的算数平均值
(x&y) + ((x^y)>>1)相当于(x+y)/2 (x&y)+((x^y)>>1),把x和y里对应的每一位(指二进制位)都分成三类,每一类分别计算平均值 ...
- GRUB4DOS入门
目 录 第1章 GRUB4DOS入门 1 1.1 用途 1 1.2 安装 1 1.2.1 修改MBR 1 1.2.2 修改PBR 3 1.2.3 DOS 4 1.2 ...