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 ...
随机推荐
- Hadoop2以来的历次升级(不含2.2.0及以下)
2015年7月06:release 2.7.1(稳定)请参阅 Hadoop 2.7.1发布说明 对131个bug修复和列表 从先前版本2.7.0补丁. 请看看 2.7.0章节列表的增强功能启用 第一个 ...
- D - 棋盘游戏 - HDU 1281(二分图匹配)
分析:先求出来最大匹配数,然后用匹配的点一个一个去除看看能否达到最大匹配,能的话就是关键点(很暴力啊),不过竟然才31ms ************************************** ...
- iOS speex
1. http://www.cocoachina.com/bbs/read.php?tid=114755 2, http://blog.csdn.net/jiangyiaxiu/article/det ...
- html5中input新增type值的使用
二狗在最近的项目以html5和webapp为主,并接触到了input新增type值的使用,下面就把这些玩意一一以实例列举出来 一:type = date:定义日期:年-月-日 input type=& ...
- Asp.Net Webapi路由基本设置
1.直接在Global.asax中添加配置 如: using MvcApplication4.App_Start; using System; using System.Collections.Gen ...
- SQLite3基本使用从shell到python
SQLite是一个轻量级的关系型数据库,在訪问量不超过10万PV的中小站点中使用绰绰有余. 并且使用方便,接口简单,以下从命令行和python接口双方面介绍SQLite3的基本操作. 在linux终端 ...
- NSRunLoop(来自官方文档)
The NSRunLoop class declares the programmatic interface to objects that manage input sources. An NSR ...
- [Android]android.graphics.Camera实现图像的旋转、缩放,配合Matrix实现图像的倾斜
android.graphics.Camera可以对图像执行一些比较复杂的操作,诸如旋转与绽放,与Matrix可实现图像的倾斜. 个人总结Camera与Matrix的一些区别如下: Camera的ro ...
- centos5.5上apache快速安装H264流媒体支持MP4-H264边下边播
2013年的某一天,客户反馈北京同事做的广告视频下载速度好慢,几MB的视频在手机上要下载接近一分钟才能开始播放. 我分析后发现两点:1)托管的服务器没支持流媒体:2)广告视频MP4并非流媒体格式. 对 ...
- Activity 状态的保存和恢复
Activity状态保存的两种情况 一.Activity状态保持概念 保存Activity的状态是非常重要的,例如我们在玩一个游戏的时候,突然来了一个电话,这个时候在接听完电话之后我们返回到游戏中,这 ...