【BZOJ】【2154】Crash的数字表格
莫比乌斯反演
PoPoQQQ讲义第4题
题解:http://www.cnblogs.com/jianglangcaijin/archive/2013/11/27/3446169.html
感觉两次sqrt(n)的枚举是亮点……
RE:汗- -b 10^7是8位数,开数组少打了一个0……
/**************************************************************
Problem: 2154
User: Tunix
Language: C++
Result: Accepted
Time:8780 ms
Memory:167292 kb
****************************************************************/ //BZOJ 2154
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define rep(i,n) for(int i=0;i<n;++i)
#define F(i,j,n) for(int i=j;i<=n;++i)
#define D(i,j,n) for(int i=j;i>=n;--i)
using namespace std; int getint(){
int v=,sign=; char ch=getchar();
while(ch<''||ch>'') {if (ch=='-') sign=-; ch=getchar();}
while(ch>=''&&ch<='') {v=v*+ch-''; ch=getchar();}
return v*=sign;
}
/*******************tamplate********************/
const int N=,P=;
typedef long long LL;
LL prime[N],mu[N];
bool check[N];
LL n,m;
void getmu(int n){
int tot=;
mu[]=;
for(int i=;i<n;i++){
if (!check[i]){
prime[tot++]=i;
mu[i]=-;
}
rep(j,tot){
if (i*prime[j]>n) break;
check[i*prime[j]]=;
if (i%prime[j]) mu[i*prime[j]]=-mu[i];
else{
mu[i*prime[j]]=;
break;
}
}
}
F(i,,n) mu[i]=(mu[i-]+mu[i]*i%P*i%P)%P;
}
inline LL Sum(LL n,LL m){
n=n*(n+)/%P;
m=m*(m+)/%P;
return n*m%P;
}
inline LL f(LL n,LL m){
LL ans=,i,last;
for(i=;i<=n;i=last+){
last=min(n/(n/i),m/(m/i));
ans=(ans+(mu[last]-mu[i-])%P*Sum(n/i,m/i)%P)%P;
}
return ans;
}
int main(){
// freopen("input.txt","r",stdin);
n=getint(); m=getint();
if(n>m) swap(n,m);
getmu(m);
LL ans=,i,last;
for(i=;i<=n;i=last+){
last=min(n/(n/i),m/(m/i));
ans=(ans+(i+last)*(last-i+)/%P*f(n/i,m/i)%P)%P;
}
if (ans<) ans+=P;
printf("%lld\n",ans);
return ;
}
2154: Crash的数字表格
Time Limit: 20 Sec Memory Limit: 259 MB
Submit: 1327 Solved: 529
[Submit][Status][Discuss]
Description
今
天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple)。对于两个正整数a和b,LCM(a,
b)表示能同时被a和b整除的最小正整数。例如,LCM(6, 8) =
24。回到家后,Crash还在想着课上学的东西,为了研究最小公倍数,他画了一张N*M的表格。每个格子里写了一个数字,其中第i行第j列的那个格子里
写着数为LCM(i, j)。一个4*5的表格如下: 1 2 3 4 5 2 2 6 4 10 3 6 3 12 15 4 4 12 4 20
看着这个表格,Crash想到了很多可以思考的问题。不过他最想解决的问题却是一个十分简单的问题:这个表格中所有数的和是多少。当N和M很大
时,Crash就束手无策了,因此他找到了聪明的你用程序帮他解决这个问题。由于最终结果可能会很大,Crash只想知道表格里所有数的和mod
20101009的值。
Input
输入的第一行包含两个正整数,分别表示N和M。
Output
输出一个正整数,表示表格中所有数的和mod 20101009的值。
Sample Input
Sample Output
【数据规模和约定】
100%的数据满足N, M ≤ 107。
HINT
Source
【BZOJ】【2154】Crash的数字表格的更多相关文章
- 【莫比乌斯反演】关于Mobius反演与lcm的一些关系与问题简化(BZOJ 2154 crash的数字表格&&BZOJ 2693 jzptab)
BZOJ 2154 crash的数字表格 Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b ...
- [bzoj 2693] jzptab & [bzoj 2154] Crash的数字表格 (莫比乌斯反演)
题目描述 TTT组数据,给出NNN,MMM,求∑x=1N∑y=1Mlim(x,y)\sum_{x=1}^N\sum_{y=1}^M lim(x,y)\newlinex=1∑Ny=1∑Mlim(x, ...
- [BZOJ 2154]Crash的数字表格(莫比乌斯反演+数论分块)
[BZOJ 2154]Crash的数字表格(莫比乌斯反演+数论分块) 题面 求 \[\sum_{i=1}^{n} \sum_{j=1}^{m} \mathrm{lcm}(i,j)\] 分析 \[\su ...
- BZOJ 2154: Crash的数字表格 [莫比乌斯反演]
2154: Crash的数字表格 Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 2924 Solved: 1091[Submit][Status][ ...
- Bzoj 2154: Crash的数字表格(积性函数)
2154: Crash的数字表格 Time Limit: 20 Sec Memory Limit: 259 MB Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least ...
- bzoj 2154 Crash的数字表格(莫比乌斯反演及优化)
Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b)表示能同时被a和b整除的最小正整数.例如 ...
- 【刷题】BZOJ 2154 Crash的数字表格
Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b)表示能同时被a和b整除的最小正整数.例如 ...
- BZOJ 2154 Crash的数字表格
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2154 题意: 思路: i64 mou[N]; void init(int N){ ...
- ●BZOJ 2154 Crash的数字表格
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2154 题解: 莫比乌斯反演. 题意还是很清楚的,就不赘述了. 显然有 $ANS=\sum_{ ...
- BZOJ 2154 Crash的数字表格 ——莫比乌斯反演
求$\sum_{i=1}^n\sum_{j=1}^n lcm(i,j)$ 枚举因数 $ans=\sum_{d<=n} F(d) * d$ $F(d)$表示给定范围内两两$\sum_{gcd(i, ...
随机推荐
- C#如何关闭一个窗口的同时打开另一个窗口
在.net的WinForm程序中,如果是直接起动的Form作为主窗口,那么这个主窗口是不能关闭的,因为它维护了一个Windows消息循环,它一旦关闭了就等于声明整个应用程序结束,所以新打开的窗口也就被 ...
- sql获取时间时分秒
select datename(hour,getdate())+':'+datename(minute,getdate())+':'+datename(second,getdate())
- 如何让R代码按计划执行
应用场景:你编写了R代码,每天对提交的数据进行分析,你希望它你吃饭的时候执行完毕,生成图表. 那么你需要安装taskscheduleR的包. 怎么操作,看帮助呗.
- XForms标准介绍
XForms标准是真正实现展现与模型分离的.与客户端无关的展现服务标准. 1.XForms标准 XForms是W3C组织所推荐的下一代在线展现服务标准(早在2003年10月14日就被W3C推荐),它吸 ...
- java中的异常处理机制_函数覆盖时的异常特点
/*注意:异常声明在函数上 异常在子父类覆盖时的体现1.子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者异常的子类2.如果父类方法抛出多个异常,那么子类在覆盖该方法 ...
- Java中String类型的不可变性和驻留池
一 基本概念 可变类和不可变类(Mutable and Immutable Objects)的初步定义: 可变类:当获得这个类的一个实例引用时,可以改变这个实例的内容. 不可变类:不可变类的实例一但创 ...
- linq 日常关键字使用
1.from var scoreQuery = from student in students from score in student.Scores where score > 90 se ...
- 解决nginx负载均衡的session共享问题
1.不使用session,换用cookie session是存放在服务器端的,cookie是存放在客户端的,我们可以把用户访问页面产生的session放到cookie里面,就是以cookie为中转站. ...
- ios特性访问器方法(setter和getter)
Employee.h @interface Employee:NSObject { int _employeeNumber; NSString *_name; Employee*_supervisit ...
- Oracle 表的连接方式(2)-----HASH JOIN的基本机制1
我们对hash join的常见误解,一般包括两个: 第一个误解:是我们经常以为hash join需要对两个做join的表都做全表扫描 第二个误解:是经常以为hash join会选择比较小的表做buil ...