bzoj 2671 莫比乌斯反演
2024-10-21 06:41:40
Calc
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 451 Solved: 234
[Submit][Status][Discuss]
Description
给出N,统计满足下面条件的数对(a,b)的个数:
1.1<=a<b<=N
2.a+b整除a*b
1.1<=a<b<=N
2.a+b整除a*b
Input
一行一个数N
Output
一行一个数表示答案
Sample Input
15
Sample Output
4
HINT
数据规模和约定
Test N Test N
1 <=10 11 <=5*10^7
2 <=50 12 <=10^8
3 <=10^3 13 <=2*10^8
4 <=5*10^3 14 <=3*10^8
5 <=2*10^4 15 <=5*10^8
6 <=2*10^5 16 <=10^9
7 <=2*10^6 17 <=10^9
8 <=10^7 18 <=2^31-1
9 <=2*10^7 19 <=2^31-1
10 <=3*10^7 20 <=2^31-1
Source
http://blog.csdn.net/popoqqq/article/details/45095601
#pragma GCC optimize(2)
#pragma G++ optimize(2)
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#define ll long long
#define mod 1000000007
#define N 50005
using namespace std;
inline int read()
{
int x=,f=;char ch=getchar();
while (ch<''||ch>''){if (ch=='-') f=-;ch=getchar();}
while (ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
} bool flag[N];
int tot,p[N],miu[N],n,m,pos;
ll ans; void pre()
{
miu[]=;
for (int i=;i<N;i++)
{
if (!flag[i]) p[++tot]=i,miu[i]=-;
for (int j=;j<=tot&&p[j]*i<N;j++)
{
flag[i*p[j]]=;
if (i%p[j]==) break;
miu[i*p[j]]=-miu[i];
}
}
}
int main()
{
pre();
scanf("%d",&n);m=sqrt(n);
for (int d=;d<=m;d++)
{
for (int i=;i<=m/d;i++)
{
int last=n/(d*d*i);
for (int x=i+,p=;x<=*i-&&x<=last;x=pos+)
{
pos=last/(last/x);
ans+=1LL*miu[d]*(min(pos,*i-)-x+)*(last/x);
}
}
}
printf("%lld",ans);
}
最新文章
- Pycharm 快捷键
- jQuery中的map()方法
- Light OJ 1029- Civil and Evil Engineer (图论-最小生成树)
- hadoop-MapReduce分布式计算框架
- Windows 删除 .svn标志
- 支持Android iOS,firefox(其它未测)的图片上传客户端预览、缩放、裁切。
- Select查询语句2
- Jetty服务器jmx监控
- ubuntu下的c/c++环境搭建
- javascript中toString和valueOf方法的区别
- oracle11g导出表时会发现少表,空表导不出解决方案。
- Groovy里面闭包中变量符号的查找与变量定义的限制
- 【webpack系列】从零搭建 webpack4+react 脚手架(一)
- Lua中的一些库(2)
- 最流行的Python编辑器/IDEs你认识吗?
- [源码]K8 Cscan模块 C#获取内网主机IP/机器名/Banner/网页标题源码
- 安装CDH5 hadoop2.3.0 NodeManager 没有启动
- C++学习(十二)(C语言部分)之 循环
- 使用tidylib解决不规则网页问题
- wamp上能够访问jsp(未解决 游客勿看)