Zap [bzoj 1101,POI 2007]
来源:互联网 发布:淘宝优惠群怎么起名字 编辑:程序博客网 时间:2024/05/16 04:40
题目地址请点击——
Zap
【题目描述】
FGD正在破解一段密码,他需要回答很多类似的问题:
对于给定的整数
作为FGD的同学,FGD希望得到你的帮助。
【输入描述】
第一行包含一个正整数
接下来
【输出描述】
对于每组询问,输出一个正整数,表示满足条件的整数对数。
【样例输入】
2
4 5 2
6 4 3
【样例输出】
3
2
【Solution】
求
维护一下
【Code】
#include <iostream>#include <cstdio>#define LL long long#define Min(x,y) ((x)<(y)?(x):(y))using namespace std;LL T,ans;LL a,b,d;LL sum[50010];//LL nxt[50010];short miu[50010];LL prime[50010];bool no_prime[50010];inline LL in(){ LL ans=0; char x=getchar(); while(x<'0'||x>'9')x=getchar(); while(x>='0'&&x<='9'){ans=ans*10+x-'0';x=getchar();} return ans; }void f(){ if(a>b)swap(a,b); for(LL i=1,it;i<=a;i=it+1){ it=Min(a/(a/i),b/(b/i)); ans+=((a/i))*((b/i))*(sum[it]-sum[i-1]); }}int main(){ scanf("%lld",&T); miu[1]=1; for(LL i=2;i<=50001;i++){ if(!no_prime[i]){ prime[++prime[0]]=i; miu[i]=-1; } for(LL j=1;prime[j]*i<=50001;j++){ no_prime[prime[j]*i]=true; if(i%prime[j]==0){ miu[prime[j]*i]=0; break; } miu[prime[j]*i]=-miu[i]; } }// for(LL i=1;i<=50001;i++)if(miu[i]!=0)nxt[++nxt[0]]=i; for(LL i=1;i<=50001;i++)sum[i]+=sum[i-1]+miu[i]; while(T--){ ans=0; a=in();b=in();d=in(); a/=d;b/=d; f();// LL minx=Min(a,b);// LL tmp=0;// while(1){// tmp++;// LL rk=d*nxt[tmp];// if(rk>minx)break;// ans+=miu[nxt[tmp]]*((a/rk)*(b/rk));// } printf("%lld\n",ans); } return 0;}
0 0
- Zap [bzoj 1101,POI 2007]
- [BZOJ 1101] POI 2007 Zap · 莫比乌斯 & 分块 超详细题解
- BZOJ 1101 Luogu P3455 POI 2007 Zap (莫比乌斯反演+分块)
- bzoj 1101: [POI2007]Zap
- BZOJ 1101: [POI2007]Zap
- 【BZOJ 1101】 [POI2007]Zap
- bzoj 1101: [POI2007]Zap
- BZOJ 1101: [POI2007]Zap
- BZOJ 1101 [POI2007] Zap
- BZOJ 1101 [POI2007]Zap
- [BZOJ]1101: [POI2007]Zap
- [bzoj 1101--Poi2007]Zap
- bzoj 1101: [POI2007]Zap
- BZOJ 1101 [POI2007]Zap 莫比乌斯反演
- BZOJ 1101: [POI2007]Zap|莫比乌斯反演
- [莫比乌斯反演] BZOJ 1101 [POI2007]Zap
- BZOJ 1101: [POI2007]Zap【莫比乌斯反演
- bzoj 1101 [POI2007]Zap 莫比乌斯反演
- XTEA加密的一种JAVA实现,64轮,CBC模式,0填充
- ImageView增加动画效果
- linux下的mysql语句命令大全
- Linux 远程控制
- Android apktool使用中遇到的问题
- Zap [bzoj 1101,POI 2007]
- C++中的单例模式
- java基础之抽象类和接口
- ButterKnife 懒人神器 使用步骤 备忘
- Ubuntu下使用openssl编程
- SQL server2012语法大全
- 价值观
- 《第一行代码》第8章 --通知的使用修正
- Linux常用命令复习