BZOJ 3994
来源:互联网 发布:阿里妈妈 知乎 编辑:程序博客网 时间:2024/06/15 01:23
BZOJ 3994
Description:
Solution:
$N<=M$
$D(i*j)$
,
Code:
#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <algorithm>#include <iostream>using namespace std;int T;int prime[50010]={0};int pp=0;int hash[50010]={0};int mu[50010]={0};long long F[50010]={0};void Pre(){ mu[1]=1; for(int i=2;i<=50000;i++) { if(hash[i]==0) { prime[++pp]=i; mu[i]=-1; } for(int j=1;j<=pp && i*prime[j]<=50000;j++) { hash[i*prime[j]]=1; if(i%prime[j]==0) { mu[i*prime[j]]=0; break; } mu[i*prime[j]]=-mu[i]; } mu[i]+=mu[i-1]; } return;}int main(){ cin>>T; Pre(); for(int i=1;i<=50000;i++) { int last=0; for(int j=1;j<=i;j=last+1) { last=i/(i/j); F[i]+=(i/j)*(last-j+1); } } for(;T>0;T--) { int N,M; scanf("%d%d",&N,&M); if(N>M) swap(N,M); int last=0; long long ans=0; for(int i=1;i<=N;i=last+1) { last=min(N/(N/i),M/(M/i)); ans+=(mu[last]-mu[i-1])*F[N/i]*F[M/i]; } printf("%lld\n",ans); } return 0;}
0 0
- BZOJ 3994
- bzoj 3994
- [BZOJ ]
- BZOJ****-****
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- bzoj
- bzoj
- BZOJ
- BZOJ
- oracle 11g 按时间建分区表
- C#读取电池电量值
- IPython Notebok的使用
- 全局变量和局部变量的存储位置
- 迷你音乐播放器(一)
- BZOJ 3994
- Internet 组管理协议
- HDU 5478 Can you find it (卡常数)2015 ACM/ICPC Asia Regional Shanghai Online
- winsocket程序编写
- 华为机试-简单错误记录
- 我的第一次软件测试成果展示
- linux驱动知识点总结
- Hibernate--------- Could not bind factory to JNDI
- 有关函数模板和类模板的说法