博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VIJOS 1889 天真的因数分解(莫比乌斯反演,容斥原理)
阅读量:6908 次
发布时间:2019-06-27

本文共 1140 字,大约阅读时间需要 3 分钟。

https://vijos.org/p/1889

同BZOJ2440..,不过这题要求的是有因数因子的,所以莫比乌斯函数要稍微改一下

1 #include
2 #include
3 #include
4 #include
5 #include
6 #define N 200000 7 #define ll long long 8 int mul[N+10],mark[N+10],p[N+10]; 9 ll K;10 void init(){11 mul[1]=1;12 for (int i=2;i<=N;i++){13 if (!mark[i]){14 p[++p[0]]=i;15 mul[i]=1;16 }17 for (int j=1;j<=p[0]&&p[j]*i<=N;j++){18 mark[i*p[j]]=1;19 if (i%p[j]) mul[i*p[j]]=-mul[i];20 else{21 mul[i*p[j]]=0;22 break;23 }24 }25 }26 }27 ll cal(ll x){28 ll sum=0,t=sqrt(x);29 for (ll i=2;i<=t;i++){30 sum+=x/(i*i)*mul[i];31 }32 return sum;33 }34 int main(){35 scanf("%lld",&K);36 init();37 ll l=K,r=25505460948LL,ans=0;38 while (l<=r){39 ll mid=(l+r)>>1;40 if (cal(mid)>=K) ans=mid,r=mid-1;41 else l=mid+1;42 }43 printf("%lld\n",ans);44 }

 

转载于:https://www.cnblogs.com/qzqzgfy/p/5583619.html

你可能感兴趣的文章
Linux下Fork与Exec使用
查看>>
在 Java 的反射中,Class.forName 和 ClassLoader 的区别
查看>>
武汉科技大学ACM :1007: 华科版C语言程序设计教程(第二版)习题5.7
查看>>
Java基础
查看>>
MongoDB(课时20 游标)
查看>>
个人项目1——自动生成四则运算
查看>>
COBBLER无人值守安装
查看>>
时间--》梅叔叔
查看>>
如何从dvi生成pdf--------亲测有效果.
查看>>
天天洗一次澡还真是好方法
查看>>
validator的验证
查看>>
python的for循环、while循环
查看>>
就算神游 之四:富士山和富士游乐园 2
查看>>
kdTree相关原理及c++实现
查看>>
MVC3 使用NPOI导出excel
查看>>
Python内置函数之匿名(lambda)函数
查看>>
win10安装Tensorflow
查看>>
[Usaco2006 Nov] Fence Repair 切割木板
查看>>
JS获取C#变量值和服务器控件的ID
查看>>
常用模块1
查看>>