题目是给你一个空间,和一个点(n,n,n),求从原点出发能够直接接触多少个点(不经过任何一个点)?

典型的mobius反演即可。

首先,ans=3,因为(1,0,0),(0,1,0),(0,0,1)这三个点必看。

其次别在三个平面内反演一次,算出三个坐标轴面的可见点数。

最后在空间反演一次,即可。反演的方法都是分块即可。

召唤代码君:

#include <iostream>
#include <cstdio>
#include <cstring>
#define maxn 1001000
typedef long long ll;
using namespace std; int mu[maxn],smu[maxn],pri[maxn];
ll n;
ll f[maxn],g[maxn]; void getprim_mu()
{
for (int i=1; i<maxn; i++) mu[i]=1;
for (int i=2; i<maxn; i++)
{
if (pri[i]) continue;
mu[i]=-mu[i];
for (int j=i+i; j<maxn; j+=i) pri[j]=1,mu[j]=-mu[j];
if (maxn/i>=i) for (int j=i*i; j<maxn; j+=i*i) mu[j]=0;
}
for (int i=1; i<maxn; i++) smu[i]=smu[i-1]+mu[i];
} ll getnum(ll N)
{
int next;
ll ans=0;
for (int i=1; i<=N; i=next+1)
{
next=N/(N/i);
ans+=(smu[next]-smu[i-1])*(N/i)*(N/i);
}
return ans;
} void _init()
{
scanf("%lld",&n);
f[1]=getnum(n);
} int gcd(int A,int B) { return B==0?A:gcd(B,A%B); } int main()
{
getprim_mu();
int T;
ll ans;
scanf("%d",&T);
while (T--)
{
_init();
ans=3+3*f[1];
for (int i=1,next; i<=n; i=next+1)
{
next=n/(n/i);
ans+=(n/i)*(n/i)*(n/i)*(smu[next]-smu[i-1]);
}
printf("%lld\n",ans);
}
return 0;
}

  

SPOJ_VLATTICE的更多相关文章

随机推荐

  1. 一目了然带你看lniux

    第一部分    熟悉Linux基本操作 一.初识Linux 1.Linux特点 ◊  开放性 ◊  多用户 ◊  多任务 ◊  良好的用户界面 ◊  设备独立性 ◊  丰富的网络功能 ◊  可靠的系统 ...

  2. [转载]在Windows下为PHP5.6安装redis扩展和memcached扩展

    一.php安装redis扩展   1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本       2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2 ...

  3. Eclipse的汉化问题

    最近看了很多我周围的同学,也都是刚开始接触Eclipse,但是都头疼于eclipse的汉化问题. 好在的是,Eclipse的汉化比较简单,不用到网上自己下载汉化包,而且关于这个软件的汉化也非常的多,所 ...

  4. 文本编辑器 vi/vim 的使用

    文本编辑器 vi/vim 一.启动与退出 1. vim 2. vim 文件名(可以是存在的文件,也可以是不在的文件) 3.退出 :q   或者:x 在非“插入”模式二.vi/vim的工作模式 1.正常 ...

  5. PLSQL面向对象

    ```sql --定义可被SQL语句调用的子程序 create or replace function getempdept(       p_empno emp.empno%type )return ...

  6. git ssh密钥配置添加

    1.  初次安装git配置用户名和邮箱 $ git config --global user.name "xxx" $ git config --global user.email ...

  7. ftp部署及使用

    常用软件安装及使用目录 http://www.jb51.net/article/106604.htm   ftp部署 本篇文章主要介绍了CentOS7.0下安装FTP服务的方法,小编觉得挺不错的,现在 ...

  8. Python操作数据库之 MySQL

    Python操作数据库之MySQL 一.安装Python-MySQLdb模块 Python-MySQLdb是一个操作数据库的模块,Python 通过它对 mysql 数据实现各种操作. 如果要源码安装 ...

  9. Vue 列表渲染及条件渲染实战

    条件渲染 有时候我们要根据数据的情况,决定标签是否进行显示或者有其他动作.最常见的就是,表格渲染的时候,如果表格没有数据,就显示无数据.如果有数据就显示表格数据. Vue 帮我们提供了一个v-if的指 ...

  10. Daily Scrum 1 --团队项目所需时间估计以及任务分配

    考虑到所有的任务不可能逐一细化分配给成员,我们将需要完成的任务进行了大致的分配.任务所需要的具体实现可以参看<学霸网站NABC> 所需要的总时间一共为44h. 我们会在以后的每日任务中进行 ...