【SPOJ7001】Visible Lattice Points-莫比乌斯反演+分块
来源:互联网 发布:windows 2000系统 编辑:程序博客网 时间:2024/06/05 08:43
测试地址:Visible Lattice Points
题目大意:在三维空间中,我们说一个点是可见的当且仅当它与点
做法:这一道题是POJ3090的加强版,从二维扩展到了三维,我写的POJ3090题解在此。而这题就不能简单地使用欧拉函数的性质来解决问题了,而需要用莫比乌斯反演来解决。
将点分为三种情况:1.
显然暴力求这个式子会炸,这时候我们就要用到一个莫比乌斯函数的性质:
分析第四个求和号下面的条件,显然
这个式子等价于:
那么这个式子显然等于:
这就是第一种情况的答案了。第二种情况就是要分别求
以下是本人代码:
#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>#define ll long longusing namespace std;int T;ll N,mu[1000010],sum[1000010];bool prime[1000010]={0};void calc_mu(){ N=1000000; for(int i=1;i<=N;i++) mu[i]=1; for(int i=2;i<=N;i++) if (!prime[i]) { for(int j=1;i*j<=N;j++) { mu[i*j]*=-1; if (j>1) prime[i*j]=1; if (!(j%i)) {mu[i*j]=0;continue;} } } sum[0]=0; for(int i=1;i<=N;i++) sum[i]=sum[i-1]+mu[i];}int main(){ scanf("%d",&T); calc_mu(); while(T--) { scanf("%lld",&N); ll ans=3,last; for(ll d=1;d<=N;d=last+1) { last=N/(N/d); ans+=((N/d)+3)*(N/d)*(N/d)*(sum[last]-sum[d-1]); } printf("%lld\n",ans); } return 0;}
阅读全文
0 0
- 【SPOJ7001】Visible Lattice Points-莫比乌斯反演+分块
- SPOJ7001 Visible Lattice Points 莫比乌斯反演+分块+前缀和
- SPOJ 7001 Visible Lattice Points (莫比乌斯反演+分块)
- poj3090 Visible Lattice Points(莫比乌斯反演)
- spoj 7001. Visible Lattice Points(莫比乌斯反演)
- SPOJ VLATTICE - Visible Lattice Points 莫比乌斯反演
- SPOJ 7001. Visible Lattice Points (莫比乌斯反演)
- SPOJ 7001 Visible Lattice Points (莫比乌斯反演)
- 【莫比乌斯反演】[SPOJ-VLATTICE]Visible Lattice Points
- 【莫比乌斯反演】[SPOJ VLATTICE]Visible Lattice Points
- SPOJ VLATTICE Visible Lattice Points - 莫比乌斯反演
- SPOJ 7001. Visible Lattice Points 莫比乌斯反演
- SPOJ 7001 Visible Lattice Points (莫比乌斯反演)
- POJ 3090 Visible Lattice Points(莫比乌斯反演)
- SPOJ 7001 Visible Lattice Points(莫比乌斯反演)
- SPOJ VLATTICE Visible Lattice Points[莫比乌斯反演]
- Visible Lattice Points(spoj7001+初探莫比乌斯)gcd(a,b,c)=1 经典
- [SPOJ VLATTICE]Visible Lattice Points 数论 莫比乌斯反演
- 【unity3d学习笔记】Shader-通过Shader实现2D游戏中无限滚动的背景Shader
- loarunner(一)
- HtmlUnit入门
- Java中的自动装箱与拆箱
- tf.nn.seq2seq.sequence_loss_by_example函数用法
- 【SPOJ7001】Visible Lattice Points-莫比乌斯反演+分块
- (150)带光照的半透明物体
- Tarjan算法研究:求強連通分量、橋、割
- 《Android那些事》——清晰理解各个Animation
- C语言堆栈问题
- 网络:TCP通讯之 time_wait 状态
- sonarqube项目按权限分配
- 聊聊树莓派吧(1)
- 【HashMap】JAVA HASHMAP的死循环