BZOJ 2693 jzptab
http://www.lydsy.com/JudgeOnline/problem.php?id=2693

题解:
考虑把lcm转化成gcd
那答案就是
然后神奇的设:
就有:
一样可以枚举
的取值,这是O(√n)的;
然后求f(x,y);
大概证明了一下= =
线性筛之后也可以O(√n)求出f(x,y)
总复杂度O(n),常数略大。。
这题显然是卡O(n)过不了呗
那就还得优化
预处理这玩意
然后O(√n)就搞出来啦!
设
“积性函数的约数和也是积性函数” ->好像比较显然?
所以g(D)是积性函数
线性筛裸上就好
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#define ll long long
const ll Mod=;
ll g[],p[],sum[];
bool mark[];
ll read(){
ll t=,f=;char ch=getchar();
while (ch<''||ch>''){if (ch=='-') f=-;ch=getchar();}
while (''<=ch&&ch<=''){t=t*+ch-'';ch=getchar();}
return t*f;
}
void init(){
g[]=sum[]=;
for (ll i=;i<;i++){
if (!mark[i]){
p[++p[]]=i;
g[i]=(ll)((i-i*i)%Mod+Mod)%Mod;
}
for (ll j=;j<=p[]&&p[j]*i<=;j++){
mark[i*p[j]]=;
if (i%p[j]==){
g[i*p[j]]=g[i]*(p[j])%Mod;
break;
}else
g[i*p[j]]=g[i]*g[p[j]]%Mod;
}
sum[i]=sum[i-]+g[i];
}
}
ll F(ll x,ll y){
return (((x*(x+)/2LL)%Mod)*((y*(y+)/2LL)%Mod))%Mod;
}
int main(){
init();int T=read();
while (T--){
ll n=read(),m=read();
if (n>m) std::swap(n,m);
ll j;ll ans=;
for (ll i=;i<=n;i=j+){
j=std::min(n/(n/i),m/(m/i));
ans+=((sum[j]-sum[i-]%Mod+Mod)%Mod)*F(n/i,m/i);
ans%=Mod;
}
printf("%lld\n",ans);
}
}
BZOJ 2693 jzptab的更多相关文章
- 【莫比乌斯反演】关于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 2693: jzptab 线性筛积性函数
2693: jzptab Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 444 Solved: 174[Submit][Status][Discus ...
- BZOJ 2693: jzptab [莫比乌斯反演 线性筛]
2693: jzptab Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1194 Solved: 455[Submit][Status][Discu ...
- BZOJ 2693: jzptab( 莫比乌斯反演 )
速度居然#2...目测是因为我没用long long.. 求∑ lcm(i, j) (1 <= i <= n, 1 <= j <= m) 化简之后就只须求f(x) = x∑u( ...
- ●BZOJ 2693 jzptab
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2693 题解: 莫比乌斯反演 先看看这个题,BZOJ 2154 Crash的数字表格,本题的升 ...
- BZOJ 2693 jzptab ——莫比乌斯反演
同BZOJ 2154 但是需要优化 $ans=\sum_{d<=n}d*\sum_{i<=\lfloor n/d \rfloor} i^2 *\mu(i)* Sum(\lfloor \fr ...
- 【刷题】BZOJ 2693 jzptab
Description Input 一个正整数T表示数据组数 接下来T行 每行两个正整数 表示N.M Output T行 每行一个整数 表示第i组数据的结果 Sample Input 1 4 5 Sa ...
- BZOJ 2693: jzptab 莫比乌斯反演 + 积性函数 +筛法
Code: #include<bits/stdc++.h> #define ll long long #define M 10001000 #define maxn 10200100 #d ...
随机推荐
- HDU 2639 Bone Collector II(01背包变型)
此题就是在01背包问题的基础上求所能获得的第K大的价值. 详细做法是加一维去推当前背包容量第0到K个价值,而这些价值则是由dp[j-w[ i ] ][0到k]和dp[ j ][0到k]得到的,事实上就 ...
- php缓存小技巧
1.缓存数组到文件: <?php $arr = array(2,3,5,76,7,8,22); $data = "<?php\nreturn ".var_export( ...
- Qt Linux 使用QJson库
1. 下载 到http://dl.oschina.net/soft/qjson下载库源文件: qjson-0.8.1-1385961227890.zip 解压为:qjson-0.8.1 2. 编译 c ...
- Android 带你玩转实现游戏2048 其实2048只是个普通的控件(转)
1.概述 博主本想踏入游戏开放行业,无奈水太深,不会游泳:于是乎,只能继续开发应用,但是原生Android也能开发游戏么,2048.像素鸟.别踩什么来着:今天给大家带来一篇2048的开发篇,别怕不分上 ...
- 配置VSFTP服务器
一.Linux FTP服务器分类: <1>wu-ftp <2>proftp=profession ftp <3>vsftp=very security ftp ...
- 【转】关于Ubuntu的sources.list 的总结
一.作用 文件/etc/apt/sources.list是一个普通可编辑的文本文件,保存了ubuntu软件更新的源服务器的地址.和sources.list功能一样的是/etc/apt/sources. ...
- activiti总结2
根据流程号查询失败原因. activiti重试机制.齿轮节点.邮件节点.任务节点.ACT_HI_ACTINST历史表.ACT_RU_EXECUTION运行表.看图. 在Eclipse里面自己写个测试方 ...
- request.ServerVariables获取环境变量
Request.ServerVariables("HTTP_X_FORWARDED_FOR") 透过代理服务器取得客户端的真实IP地址,有些用此方法读取到的仍然是代理服务器的IP ...
- jquery中的this 到底是什么意思? $(this)
如果你学过面向对象语言的话,例如JAVA,你应该明白这个this在JAVA里的意思,简单的说,谁在调用它,它就代表文谁. 那么,用到这个jquery里,也算是蛮简单的.举两个例子,一个是单个对象,一个 ...
- iOS UI_APPEARANCE_SELECTOR
iOS后属性带UI_APPEARANCE_SELECTOR 可以统一设置全局作用 例如: 1>开关控件 @property(nullable, nonatomic, strong) UIColo ...