题意:给定一个NxNxN的正方体,求出最多能选几个整数点,使得任意两点PQ不会使PQO共线。

思路:利用容斥原理,设f(k)为点(x, y, z)三点都为k的倍数的点的个数(要扣掉一个原点O),那么所有点就是f(1),之后要去除掉共线的,就是扣掉f(2), f(3), f(5)..f(n),n为素数.因为这些素数中包含了合数的情况,并且这些点必然与f(1)除去这些点以外的点共线,所以扣掉.但是扣掉后会扣掉一些重复的,比如f(6)在f(3)和f(2)各被扣了一次,所以还要加回来,利用容斥原理,答案为
f(1) - f(一个质因子) + f(两个质因子)...
所以先预处理一个素数表,枚举n,去分解因子,判断个数,奇数为减偶数为加,这样求出答案

原文地址:https://blog.csdn.net/accelerator_/article/details/36714109

#include <stdio.h>
#include <string.h> const int N = ;
long long n;
long long prime[N];
int pn = , vis[N]; long long pow3(long long num) {
return num * num * num - ;
} int count(long long num) {
int ans = ;
for (int i = ; i < pn && prime[i] <= num; i++) {
if (!vis[num]) {ans++; break;}
if (num % prime[i] == ) {
ans++;
num /= prime[i];
if (num % prime[i] == ) return -;
}
}
return ans;
} long long cal(long long num) {
int t = count(num);
if (t == -) return ;
if (t&) return -pow3((n / / num) * + );
else return pow3((n / / num) * + );
} long long solve() {
long long ans = pow3(n + );
for (long long i = ; i <= n; i++)
ans += cal(i);
return ans;
} int main() {
vis[] = ;
for (long long i = ; i < N; i++) {
if (vis[i]) continue;
prime[pn++] = i;
for (long long j = i * i; j < N; j += i)
vis[j] = ;
}
int cas = ;
while (~scanf("%lld", &n) && n) {
printf("Crystal %d: %lld\n", ++cas, solve());
}
return ;
}

Make a Crystal UVA - 11014 (容斥定理)的更多相关文章

  1. HDU 1695 GCD 欧拉函数+容斥定理 || 莫比乌斯反演

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  2. HDU 1695 GCD(容斥定理)

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  3. HDU 1796How many integers can you find(简单容斥定理)

    How many integers can you find Time Limit: 12000/5000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  4. Codeforces Round #330 (Div. 2) B. Pasha and Phone 容斥定理

    B. Pasha and Phone Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/595/pr ...

  5. hdu_5213_Lucky(莫队算法+容斥定理)

    题目连接:hdu_5213_Lucky 题意:给你n个数,一个K,m个询问,每个询问有l1,r1,l2,r2两个区间,让你选取两个数x,y,x,y的位置为xi,yi,满足l1<=xi<=r ...

  6. How Many Sets I(容斥定理)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3556 How Many Sets I Time Limit: 2 ...

  7. HDU - 4135 Co-prime 容斥定理

    题意:给定区间和n,求区间中与n互素的数的个数, . 思路:利用容斥定理求得先求得区间与n互素的数的个数,设表示区间中与n互素的数的个数, 那么区间中与n互素的数的个数等于.详细分析见求指定区间内与n ...

  8. BZoj 2301 Problem b(容斥定理+莫比乌斯反演)

    2301: [HAOI2011]Problem b Time Limit: 50 Sec  Memory Limit: 256 MB Submit: 7732  Solved: 3750 [Submi ...

  9. BZOJ2839 : 集合计数 (广义容斥定理)

    题目 一个有 \(N\) 个 元素的集合有 \(2^N\) 个不同子集(包含空集), 现在要在这 \(2^N\) 个集合中取出若干集合(至少一个), 使得它们的交集的元素个数为 \(K\) ,求取法的 ...

  10. HDU 4135 Co-prime 欧拉+容斥定理

    Co-prime Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

随机推荐

  1. Linux常规命令总结

    Linux常规命令总结,仅供参考: 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显 ...

  2. linux文件种类及其扩展名

    文件种类 普通文件(ls -al出来第一列为-) 纯文本文件(ASCII):linux系统中最多的一种文件类型,可以使用cat直接读取: 二进制文件(binary):linux下面的可执行文件: 数据 ...

  3. easyx图形库做贪吃蛇游戏

    编程总是对着一个黑窗口,可以说是非常乏味了,于是喵喵就翻出来了以前用easyx图形库做图形界面的贪吃蛇游戏. 不过大家只是当做提高编程的乐趣来学习吧,想进一步做的话可以学习QT,还有其他的框架. 这是 ...

  4. ipython快捷键操作及常用命令

    Ipython shell命令- Ctrl-P 或上箭头键 后向搜索命令历史中以当前输入的文本开头的命令- Ctrl-N 或下箭头键 前向搜索命令历史中以当前输入的文本开头的命令- Ctrl-R 按行 ...

  5. Nginx笔记(一):安装

    Nginx在安装前需要先安装其所依赖的类库,所以需先行安装好之后再进行Nginx安装. Nginx依赖以下模块: l  gzip模块需要 zlib 库 l  rewrite模块需要 pcre 库 l  ...

  6. 基于Java Junit测试框架 + jmeter 做压力测试

    1.JUnit 用户指南请查阅: https://junit.org/junit5/docs/current/user-guide/ 以一下代码为例:add接口 代码测试正常后,导出包: 下一步: j ...

  7. webpack开发和生产两个环境的配置详解

    一开始在接触webpack 的时候,简直痛不欲生,现在回头看,做个注释,当然参考了很多文章.这是一个关于vue 开发的webpack 架构会列举出来webpack 系列教程Webpack——令人困惑的 ...

  8. python之爬虫_模块

    目录 一.requests模块二.Beautifulsoup模块 一.requests模块 1.介绍 Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但 ...

  9. 为什么你学过Java却忘光了——记第一次助教同学见面会

    大约两周之前,主讲老师刘志勇老师和我约定,让我上周四到课堂上和同学们认识.交流一下.一开始我不太明了去和大家见面要说些什么,也不太理解这么做的必要性是什么.但随着日子临近,我请教了周筠老师,周筠老师和 ...

  10. Visual Studio win平台 AI环境搭建

    内容提要:我觉得难点主要出在下载上,程序跑的都挺流畅的.下载有时会失败. 1.下载安装git.这一步主要为了下载示例和自动安装环境的python代码,直接去github上用网页下载也是一样的,git不 ...