http://www.spoj.com/problems/VLATTICE/en/

题意:

给一个长度为N的正方形,从(0,0,0)能看到多少个点。

思路:
这道题其实和能量采集是差不多的,只不过从二维上升到了三维。

分三部分计算:

①坐标值上的点,只有3个。

②与原点相邻的三个表面上的点,需满足gcd(x,y)=1。

③其余空间中的点,需满足gcd(x,y,z)=1。

 #include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<sstream>
#include<vector>
#include<stack>
#include<queue>
#include<cmath>
#include<map>
#include<set>
using namespace std;
typedef long long ll;
typedef pair<int,int> pll;
const int INF = 0x3f3f3f3f;
const int maxn = + ; bool check[maxn];
int prime[maxn];
int mu[maxn];
ll sum[maxn]; void Mobius()
{
memset(check, false, sizeof(check));
mu[] = ;
int tot = ;
for (int i = ; i <= maxn; i++)
{
if (!check[i])
{
prime[tot++] = i;
mu[i] = -;
}
for (int j = ; j < tot; j++)
{
if (i * prime[j] > maxn)
{
break;
}
check[i * prime[j]] = true;
if (i % prime[j] == )
{
mu[i * prime[j]] = ;
break;
}
else
{
mu[i * prime[j]] = -mu[i];
}
}
}
sum[]=;
for(int i=;i<maxn;i++)
sum[i]=sum[i-]+mu[i];
return ;
} ll compute1(int n)
{
ll tmp=;
for(int i=,last=;i<=n;i=last+)
{
last=n/(n/i);
tmp+=(sum[last]-sum[i-])*(n/i)*(n/i)*(n/i);
}
return tmp;
} ll compute2(int n)
{
ll tmp=;
for(int i=,last=;i<=n;i=last+)
{
last=n/(n/i);
tmp+=(sum[last]-sum[i-])*(n/i)*(n/i);
}
return tmp;
} int n, m; int main()
{
//freopen("in.txt","r",stdin);
Mobius();
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
printf("%lld\n",compute1(n)+compute2(n)*+);
}
return ;
}

最新文章

  1. MVC 之 Code First
  2. 自定义struts实现
  3. 优化MySchool总结习题
  4. HDU 2085 核反应堆 --- 简单递推
  5. [搜片神器]之DHT网络爬虫的代码实现方法
  6. 深入剖析 HTML5
  7. 五指CMS发布,主打高性能
  8. JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释
  9. Windows下一个AndroidStudio 正在使用Git(AndroidStudio工程GitHub关联)
  10. 使用ThinkPHP框架高速发展网站(多图)
  11. 重写ViewPager实施单一交有关切换到这个问题,并没有缓存
  12. IIS配置PHP环境
  13. DOM解析原理示意
  14. JavaScript - proxy
  15. Java基础96 ajax技术的使用
  16. VPC配置介绍
  17. windows7环境下java jdk的配置
  18. struts2值栈ValueStack中都有哪些东西?
  19. faceswap安装说明
  20. SourceTree轻松Git项目

热门文章

  1. hihocoder [Offer收割]编程练习赛14 可疑的记录
  2. 安装php环境xampp
  3. Python 中的线程-进程2
  4. postgresql----字符串函数与操作符
  5. 您好,前端使用https,后端使用https是会有冲突的情况,所以默认后端都是http 负载均衡即可管理证书,不需要在后端ECS上绑定证书。
  6. nginx ---refine---按需时间/流量进行调整后台服务器---geocity,proxypass
  7. web应用/http协议/web框架
  8. java 入门基础学习
  9. windows 系统无法启动windows event log 服务
  10. LVM的一些问题汇总 tune2fs命令