SPOJ_VLATTICE
题目是给你一个空间,和一个点(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的更多相关文章
随机推荐
- 快速搭建属于自己的mongodb数据库
前言 MongoDB 是一个基于分布式文件存储的数据库.由C++语言编写,支持Windows,Linux,OSX,Solaris等平台,默认端口为27017,是一个效率非常高的nosql数据库. 我的 ...
- Nginx应用场景
1. Nginx应用场景 1)http服务器.Nginx可以独立的提供http服务,可以做网页静态服务器(也就是将静态文件放到nginx目录下,通过nginx来访问就ok) 2)虚拟主机,可以在一 ...
- 在linux环境下为eclipse配置jdk以及Tomcat服务(附图解详细步骤)
环境:jdk8,Tomcat7,eclipse 需要先在linux上安装好对应的软件及java环境,如果还没有安装的,可以先去看我之前写的两篇博客:ubuntu/linux中安装Tomcat(附图解详 ...
- Netty源码分析第6章(解码器)---->第3节: 行解码器
Netty源码分析第六章: 解码器 第三节: 行解码器 这一小节了解下行解码器LineBasedFrameDecoder, 行解码器的功能是一个字节流, 以\r\n或者直接以\n结尾进行解码, 也就是 ...
- WebSocket抓包分析
转载自:https://www.cnblogs.com/songwenjie/p/8575579.html Chrome控制台 (1)F12进入控制台,点击Network,选中ws栏,注意选中Filt ...
- 使用Java EE 在eclipse 开发动态的Web工程(Java web项目)
1.使用Java EE 在eclipse 开发动态的Web工程(Java web项目)1)开发开发选项切换到JavaEE2)可以在Windows->show view中找到package exp ...
- Hadoop错误码速查
经常遇到的exception是:PipeMapRed.waitOutputThreads(): subprocess failed with code N "OS error code 1: ...
- Ajax中post后台.net MVC中Controller的路径问题。
今天使用ajax的post方法,去访问mvc的controller,url的传值是 "//ProductCatalog/PostShareInfo",发现无论如何都访问不到. 我实 ...
- #1490 : Tree Restoration-(微软2017在线笔试)
输入n m km个数,表示每层的节点个数接下来m行是每层的节点,节点顺序是从左往右的k个叶子节点k*k个矩阵,表示叶子节点之间的距离 输出:每个节点的父亲节点编号,root节点是0 题解:1.很明显, ...
- Linux下oracle启动/关闭监听(bash:lsnrctl:command not found)
打开终端 切换帐户 # su - Oracle 启动监听 $ lsnrctl start 关闭监听 $ lsnrctl stop 切换帐户一定要加 "-" 否则会出现: bas ...