51nod1223 分数等式的数量
来源:互联网 发布:java开发重庆薪酬 编辑:程序博客网 时间:2024/05/22 10:58
51nod1223 分数等式的数量
Time Limit:6 秒 Memory Limit:128GB
Description
有这样一个分数等式:
例如:L = 12,满足条件的等式有3个,分别是:
Input
输入1个数L(1 <= L <= 10^11)
Output
输出符合条件的等式的数量。
Sample Input
12
Sample Output
3
解题思路
令
因此
最后一个下取整求和分块处理好了。
时间复杂度?
交上去很小很小就是了。
#include<cstring>#include<cstdio>#include<cctype>#include<algorithm>#define N 1001001using namespace std;typedef long long ll;ll L,mu[N],pr[N];bool bz[N];ll sum(ll n,ll h,ll t){ ll ans=0; for(ll i=h,j;i<=n && i<=t;i=j+1){ j=min(t,n/(n/i));ans=ans+(n/i)*(j-i+1); }return ans;}int main(){ scanf("%lld",&L); mu[1]=1; for(ll i=2;i<N;i++){ if(!bz[i])mu[pr[++pr[0]]=i]=-1; for(int j=1;j<=pr[0] && i*pr[j]<N;j++){ bz[i*pr[j]]=1;mu[i*pr[j]]=-mu[i]; if(i%pr[j]==0){mu[i*pr[j]]=0;break;} } } ll ans=0; for(ll k=1;k*k<=L;k++)if(mu[k]) for(ll Y=1;Y*Y*k*k<=L;Y++)ans=ans+mu[k]*sum(L/Y/k/k,Y+1,Y+Y-1); printf("%lld",ans);}
阅读全文
0 0
- [51nod1223]分数等式的数量
- 51nod1223 分数等式的数量
- 【51nod1223】【分数等式的数量】【莫比乌斯反演】
- [51nod 1223]分数等式的数量
- 【51NOD 1223】分数等式的数量
- [51Nod 1223] 分数等式的数量
- 51nod 1223 分数等式的数量
- 51nod 1223 分数等式的数量
- 等式数量
- FZU 1707 等式数量
- FZU OJ 1707 等式数量
- [51nod 1139]奇妙等式的解
- 等式数量--hash算法之除留余数法
- 污损的等式
- 奇怪的等式
- FZU2125:简单的等式
- 简单的等式
- 简单的等式
- 统计元音字母
- 计蒜客-字符全排列
- '_file': is not a member of '_iobuf'
- LLVM笔记
- 机器学习大牛链接收藏
- 51nod1223 分数等式的数量
- python 生成器
- 深度学习入门---基本概念
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession
- EasyDSS打包方法介绍
- go--map
- CSS中强大的EM
- 17.10.7B组总结
- 纯干货,Spring-data-jpa详解,全方位介绍。