这样的点分成三类

1 不含0,要求三个数的最大公约数为1

2 含一个0,两个非零数互质

3 含两个0,这样的数只有三个,可以讨论

针对 1情况 定义f[n]为所有满足三个数最大公约数为n的三元组数量

F[n]为所有满足三个数的最大公约数能被n整除的三元组数量

显然 F[n]=∑n|df[d]

然后由莫比乌斯反演,f[n]=∑n|dμ[d/n]*F[d]

情况三也是一样的

#include<iostream>
#include<algorithm>
#include<set>
#include<vector>
#include<queue>
#include<cstdlib>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const int N=1e6+;
int n,T,prime[N],mu[N];
bool vis[N];
void getmu()
{
mu[] = ;
int cnt = ;
for(int i=; i<=N-; i++)
{
if(!vis[i])
{
prime[cnt++] = i;
mu[i] = -;
}
for(int j=; j<cnt&&i*prime[j]<=N-; j++)
{
vis[i*prime[j]] = ;
if(i%prime[j]) mu[i*prime[j]] = -mu[i];
else
{
mu[i*prime[j]] = ;
break;
}
}
}
}
LL F1(LL x){
x=n/x;
return x*x*x;
}
LL F2(LL x){
x=n/x;
return x*x*;
}
int main(){
getmu();
scanf("%d",&T);
while(T--){
scanf("%d",&n);
LL ans=;
for(int i=;i<=n;++i){
ans+=mu[i]*F1(i);
ans+=mu[i]*F2(i);
}
printf("%lld\n",ans+);
}
return ;
}

SPOJ VLATTICE Visible Lattice Points 莫比乌斯反演的更多相关文章

  1. SPOJ VLATTICE Visible Lattice Points (莫比乌斯反演基础题)

    Visible Lattice Points Consider a N*N*N lattice. One corner is at (0,0,0) and the opposite one is at ...

  2. SPOJ VLATTICE Visible Lattice Points 莫比乌斯反演 难度:3

    http://www.spoj.com/problems/VLATTICE/ 明显,当gcd(x,y,z)=k,k!=1时,(x,y,z)被(x/k,y/k,z/k)遮挡,所以这道题要求的是gcd(x ...

  3. spoj 7001 Visible Lattice Points莫比乌斯反演

    Visible Lattice Points Time Limit:7000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Su ...

  4. SPOJ 7001 Visible Lattice Points (莫比乌斯反演)

    题意:求一个正方体里面,有多少个顶点可以在(0,0,0)位置直接看到,而不被其它点阻挡.也就是说有多少个(x,y,z)组合,满足gcd(x,y,z)==1或有一个0,另外的两个未知数gcd为1 定义f ...

  5. [SPOJ VLATTICE]Visible Lattice Points 数论 莫比乌斯反演

    7001. Visible Lattice Points Problem code: VLATTICE Consider a N*N*N lattice. One corner is at (0,0, ...

  6. Spoj 7001 Visible Lattice Points 莫比乌斯,分块

    题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=37193   Visible Lattice Points Time L ...

  7. spoj7001 Visible Lattice Points 莫比乌斯反演+三维空间互质对数

    /** 题目:Visible Lattice Points 链接:https://vjudge.net/contest/178455#problem/A 题意:一个n*n*n大小的三维空间.一侧为(0 ...

  8. SPOJ VLATTICE Visible Lattice Points(莫比乌斯反演)题解

    题意: 有一个\(n*n*n\)的三维直角坐标空间,问从\((0,0,0)\)看能看到几个点. 思路: 按题意研究一下就会发现题目所求为. \[(\sum_{i=1}^n\sum_{j=1}^n\su ...

  9. SPOJ VLATTICE - Visible Lattice Points 【“小”大数加减】

    题目链接 一道比较简单的莫比乌斯反演,不过ans会爆long long,我是用结构体来存结果的,结构体中两个LL型变量分别存大于1e17和小于1e17的部分 #include<bits/stdc ...

随机推荐

  1. syntax error near unexpected token `then'

    #!/bin/bashclearfunction test{   if[$1 -eq "root"]&&[$2 -eq "123456"]    ...

  2. Javascript常见全局函数

      ØdecodeURI() 解码某个编码的 URI ØencodeURI() 把字符串编码为 URI ØdecodeURIComponent() 解码一个编码的 URI 组件 ØencodeURIC ...

  3. node.js里的forEach()也是异步的吗?

    博客已经迁移到www.imyzf.com,本站不再更新,请谅解! node里几乎所有用到回调函数的地方,都是异步的,回调函数后面的代码很可能比回调函数中的代码后先执行,特别是数据库操作.当然,node ...

  4. 用javascript快速清空你的人人时间轴、状态和分享

    博客已经迁移到www.imyzf.com,本站不再更新,请谅解! 现在玩人人的人越来越少了,很多人担心不玩以后东西放上面不安全..我也有同样的想法,但是手动删除上百条东西,太累了,于是写了些javas ...

  5. 如何把jar包放到本地maven仓库中

    以前开发过程中也碰到过maven项目中需要引用其它jar包的情况,当时由于对maven还不熟悉,所以使用了在本地搭建nexus或者手动添加jar包的方法,两者都不是很方便. 如今因为淘宝的工作需要,又 ...

  6. Runtime - 01

    Runtime是想要做好iOS开发,或者说是真正的深刻的掌握OC这门语言所必需理解的东西.最近在学习Runtime,有自己的一些心得,整理如下, 什么是Runtime 我们写的代码在程序运行过程中都会 ...

  7. 使用WampServer 3.0

    在server上安装了WampServer 发现本地使用良好,但是无法从别的PC访问. 原因有二: 1.现象:输入连接无反应 原因:server本身用了80端口,所有WampServer我就设置了80 ...

  8. jna 使用实例,

    有与项目组需要用到C++的一个模块, 需要将一个2维数组传到dll 里面 ,返回一个字符串, 恶心了1天终于完成了, 记录一下,同时也希望能给你带来帮助. java 代码如下, package tes ...

  9. BZOJ 3901 棋盘游戏 解题报告

    这题有个重要性质: 我们设 Flag[i][j] 表示 (i, j) 是否被奇数个操作所覆盖, 也就是操作次数对 2 取模. 设 x = (n + 1) / 2. 那么对于所有的合法的操作方案, 令 ...

  10. python编码基础知识

    http://www.javaeye.com/topic/560229 一 预备知识 字符集1, 常用字符集分类ASCII及其扩展字符集作用:表语英语及西欧语言.位数:ASCII是用7位表示的,能表示 ...