spoj 7001 VLATTICE
来源:互联网 发布:深度linux在虚拟机玩 编辑:程序博客网 时间:2024/06/07 03:02
Consider a N*N*N lattice. One corner is at (0,0,0) and the opposite one is at (N,N,N). How many lattice points are visible from corner at (0,0,0) ? A point X is visible from point Y iff no other lattice point lies on the segment joining X and Y.
Input :
The first line contains the number of test cases T. The next T lines contain an interger N
Output :
Output T lines, one corresponding to each test case.
Sample Input :
3
1
2
5
Sample Output :
7
19
175
Constraints :
T <= 50
1 <= N <= 1000000
这题是 bzoj2005 的升级版,从二维变成了三维,而且还有不同的是这题需要计算坐标轴上的点。
我们用莫比乌斯反演分别求出三个点都不是零的答案,有一个点是零的答案,还有就是在坐标轴上的点,有两个点是零的答案,加起来就是要求的点数了。
我们同样是设F(n) 为gcd是n的倍数的个数,f(n)为gcd是n的个数,
用莫比乌斯反演求出 f(1)
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define LL long longusing namespace std;const int maxn = 1e6 + 10;int p[maxn/10];int flag[maxn];int mu[maxn];int cnt = 0;void init(){ int i,j; mu[1] = 1; for(i=2;i<maxn;i++) { if(!flag[i]) { p[cnt++] = i; mu[i] = -1; } for(j=0;j<cnt&&p[j]*i<maxn;j++) { flag[p[j]*i] = 1; if(i % p[j] == 0) { mu[p[j]*i] = 0; break; } mu[p[j]*i] = -mu[i]; } }}int main(void){ int T,n,i,j; init(); scanf("%d",&T); while(T--) { scanf("%d",&n); LL sum1 = 0; LL sum2= 0; for(i=1;i<=n;i++) { sum1 += (LL)mu[i]*(n/i)*(n/i)*(n/i); sum2 += (LL)mu[i]*(n/i)*(n/i); } LL ans = sum1 + sum2*3 + 3; printf("%lld\n",ans); } return 0;}
阅读全文
0 0
- spoj 7001 VLATTICE
- SPOJ-VLATTICE
- SPOJ VLATTICE
- VLATTICE - Visible Lattice Points [Spoj 7001]
- SPOJ 7001 VLATTICE【莫比乌斯反演】
- SPOJ 7001 VLATTICE - Visible Lattice Points(莫比乌斯反演)
- SPOJ VLATTICE - Visible Lattice Points 莫比乌斯反演
- SPOJ VLATTICE Visible Lattice Points 初入莫比乌斯
- SPOJ VLATTICE(莫比乌斯反演)
- 【莫比乌斯反演】[SPOJ-VLATTICE]Visible Lattice Points
- 【莫比乌斯反演】[SPOJ VLATTICE]Visible Lattice Points
- SPOJ VLATTICE Visible Lattice Points - 莫比乌斯反演
- 莫比乌斯反演1003 SPOJ VLATTICE
- SPOJ VLATTICE Visible Lattice Points[莫比乌斯反演]
- [SPOJ VLATTICE]Visible Lattice Points 数论 莫比乌斯反演
- SPOJ VLATTICE Visible Lattice Points (莫比乌斯反演基础题)
- SPOJ VLATTICE Visible Lattice Points (莫比乌斯反演)
- 【SPOJ VLATTICE】Visible Lattice Points——莫比乌斯反演3
- 数据视图(AngularJS)
- Hadoop学习笔记-搭建源码学习环境
- CentOS下安装RethinkDB
- 2-day(CSS)
- linux chrome下载 scrapy下载 mysqldb下载
- spoj 7001 VLATTICE
- opencv Mat与数组之间值传递
- 将安卓手机屏幕内容投射到电脑屏幕上
- HDU1078 FatMouse and Cheese DP(记忆化搜索)
- tf 制作tfrecord笔记
- Java多线程之锁优化策略
- hdu6078 Wavel Sequence 2017多校第四场1012 dp
- LeetCoder 33. Search in Rotated Sorted Array(二分)
- JavaScript中的shift()和pop()函数