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开发 字符串添加行间距
+ (CGFloat)achiveWidthAttrString:(NSAttributedString *)attrString withHeight:(CGFloat)height { CGRec ...
- LayoutParams使用
LayoutParams继承于Android.View.ViewGroup.LayoutParams. LayoutParams相当于一个Layout的信息包,它封装了Layout的位置. ...
- c++ string 与 char 互转 以及base64
c++ string 与 char 互转 很简单如下 ] = {'A','B','C','D','E'}; printf("%s\n",bts); //char to string ...
- centos7 安装mariaDB 以及 phpmyadmin的安装
centos7 安装mariaDB 以及 phpmyadmin的安装 一:安装mariadb, mariadb 是 mysql 的一个分支,基本和mysql一样的 1. yum -y install ...
- as的Enter_Frame与Timer
As3中的Timer和Event.EnterFrame是有明显的区别的. Evnet.EnterFrame是定时间隔多少时间出发.如果执行时间比间隔时间长,则会间隔执行时间这么久. 举个例子: Fla ...
- 【bzoj1037】生日聚会
bzoj1037 题意 \(n\)个男孩,\(m\)个女孩,共\(n+m\)个排成一排. 要求对于任意连续的一段,男孩与女孩的数目之差不超过\(k\). 求排列的方案数. \(1\leq n,m\le ...
- Spring表达式语言 之 5.3 SpEL语法(拾肆)
5.3 SpEL语法 5.3.1 基本表达式 一.字面量表达式: SpEL支持的字面量包括:字符串.数字类型(int.long.float.double).布尔类型.null类型. 类型 示例 字 ...
- TWaver HTML5 (2D)--基本概念
基本概念 TWaver HTML5(以下简称TWaver)使用HTML5技术和javascript语言,可在支持HTML5的浏览器上进行绘图. 使用TWaver前,需熟悉几个基本概念:图元(Eleme ...
- C#读写EXCEL
using System; using System.Collections; using System.Configuration; using System.Data; using System. ...
- IE7浏览器下CSS属性选择器二三事
一.为何专门说起IE7 以前,或者说数年前,我们从事桌面端网页开发的时候,基本上都还要兼顾IE6浏览器, 即使有些特性,IE7支持,我们也会忽略之.于是,我们会不自然地把IE6和IE7浏览器归为一路货 ...