Bzoj2693 jzptab
2017-04-14 23:49
316 查看
Time Limit: 10 Sec Memory Limit: 512 MB
Submit: 1436 Solved: 568Description
Input
一个正整数T表示数据组数
接下来T行 每行两个正整数 表示N、M
Output
T行 每行一个整数 表示第i组数据的结果
Sample Input
14 5
Sample Output
122HINT
T <= 10000
N, M<=10000000
HINT
Source
数学问题 莫比乌斯反演
终于会筛积性函数啦——
似乎以前的理解有一部分想岔了……
在Bzoj2154的基础上再推几步就能get $O(sqrt(n))$ 的算法
因为很困所以不写题解了233
/*by SilverN*/ #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<vector> #define LL long long using namespace std; const int mod=1e8+9; const int mxn=1e7+3; int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0' || ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } int pri[mxn],cnt; LL g[mxn],smm[mxn]; bool vis[mxn]; void init(){ g[1]=1; for(int i=2;i<mxn;i++){ if(!vis[i]){ pri[++cnt]=i; g[i]=1-i; } for(int j=1;j<=cnt && (LL)pri[j]*i<mxn;j++){ vis[pri[j]*i]=1; if(i%pri[j]==0){ g[pri[j]*i]=g[i]; break; } g[pri[j]*i]=g[i]*g[pri[j]]%mod; } } for(int i=1;i<mxn;i++) smm[i]=(smm[i-1]+g[i]*i%mod)%mod; return; } inline int SS(int x,int y){ return ((LL)x*(x+1)/2%mod)*((LL)y*(y+1)/2%mod)%mod; } LL calc(int n,int m){ if(n>m)swap(n,m); LL res=0;int pos; for(int i=1;i<=n;i=pos+1){ int x=n/i,y=m/i; pos=min(n/x,m/y); res=(res+(smm[pos]-smm[i-1])*(SS(x,y)))%mod; } return res; } int n,m; int main(){ freopen("bzoj_2693.in","r",stdin); freopen("bzoj_2693.out","w",stdout); init(); int T=read(); while(T--){ n=read();m=read(); printf("%d\n",(calc(n,m)+mod)%mod); } return 0; }
相关文章推荐
- BZOJ 2693 jzptab
- [BZOJ2693]jzptab
- BZOJ_2693_jzptab_莫比乌斯反演
- BZOJ2693: jzptab
- [BZOJ 2693]jzptab:莫比乌斯反演
- [BZOJ 2693]jzptab
- 莫比乌斯进阶:bzoj 2693 jzptab(Mobius)
- 【BZOJ2693】jzptab(莫比乌斯反演)(数学)
- 【BZOJ2693】jzptab 莫比乌斯反演
- BZOJ2693: jzptab
- bzoj2693: jzptab
- bzoj 2693: jzptab
- [BZOJ 2693] jzptab
- 【BZOJ 2693】jzptab
- 【BZOJ2693】jzptab(莫比乌斯反演)
- 【BZOJ2693】jzptab(莫比乌斯反演)
- 【BZOJ 2693】jzptab(莫比乌斯+分块)
- bzoj 2693 jzptab(线性筛预处理+反演)
- 【莫比乌斯反演】关于Mobius反演与lcm的一些关系与问题简化(BZOJ 2154 crash的数字表格&&BZOJ 2693 jzptab)
- bzoj 2693 jzptab