Reflect(欧拉函数)
Reflect
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 288 Accepted Submission(s): 174

For each test case, there is an positive integer N(N≤106).
4
#include<bits/stdc++.h>
using namespace std;
const int M = 1e6+10 ;
int phi[M] , prime[M] ; int Euler () {
for (int i = 2 ; i < M ; i ++) {
if (!phi[i]) {
phi[i] = i-1 ;
prime[ ++prime[0] ] = i ;
}
for (int j = 1 ; j <= prime[0] && 1ll*i*prime[j] < M ; j ++) {
if (i % prime[j]) phi[i * prime[j]] = phi[i] * (prime[j]-1) ;
else {
phi[i * prime[j] ] = phi[i] * prime[j] ;
break ;
}
}
}
} int main () {
Euler () ;
int T ;
scanf ("%d" , &T) ;
int n ;
while (T --) {
scanf ("%d" , &n) ;
printf ("%d\n" , phi[n+1]) ;
}
return 0 ;
}
虽然说标签上写着欧拉,但在分析出之前,并没有什么用。
一开始我是这么想的,如果当前的点数为n。cnt = 0 ;
那么我枚举 i = 1~n/2,如果n % i == 0 ,那么当前这种情况肯定是不行的(这里i可以认为是你隔了i个点连线),其余情况,我都令cnt++
因为我想如果当前的间隔点数>n/2 , 那么相当于前一半的对称,我最后答案只要cnt*2就ok了。
个人现在仍觉得蛮对的。(但实际上wa了)
但进一步分析:
2θ * n = 2*k*pi ;
θ = k/n * pi ;
所以理论上来说只要k <= n ,都是能回到圆点的。但题目要求要“恰好”
然后我们假设存在三个正整数k,a,b,k=a+b。
那么你很容易证明若 k 与 a 互质 , 则k 必与 b互质;同样的,k 若与 a 不互质,则k 与 b必定不互质。
所以我在枚举 i = 1~n/2的过程中,若枚举到一个数x , n%x == 0 , 那么 n % (n-x) == 0 ,
而且你会发现x , 和n - x就是个对称的过程。
所以其实我在干的过程就是 寻找与n互质的数的个数 。
所以用欧拉函数完全没问题。
Reflect(欧拉函数)的更多相关文章
- HDU 5430:Reflect 欧拉函数
Reflect Accepts: 72 Submissions: 302 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/ ...
- hdu 5279 Reflect phi 欧拉函数
Reflect Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://bestcoder.hdu.edu.cn/contests/contest_chi ...
- HDU 5430 Reflect(欧拉函数)
题目: http://acm.hdu.edu.cn/showproblem.php?pid=5430 从镜面材质的圆上一点发出一道光线反射NNN次后首次回到起点. 问本质不同的发射的方案数. 输入描述 ...
- hdu2588 GCD (欧拉函数)
GCD 题意:输入N,M(2<=N<=1000000000, 1<=M<=N), 设1<=X<=N,求使gcd(X,N)>=M的X的个数. (文末有题) 知 ...
- BZOJ 2705: [SDOI2012]Longge的问题 [欧拉函数]
2705: [SDOI2012]Longge的问题 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 2553 Solved: 1565[Submit][ ...
- BZOJ 2818: Gcd [欧拉函数 质数 线性筛]【学习笔记】
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 4436 Solved: 1957[Submit][Status][Discuss ...
- COGS2531. [HZOI 2016]函数的美 打表+欧拉函数
题目:http://cogs.pw/cogs/problem/problem.php?pid=2533 这道题考察打表观察规律. 发现对f的定义实际是递归式的 f(n,k) = f(0,f(n-1,k ...
- poj2478 Farey Sequence (欧拉函数)
Farey Sequence 题意:给定一个数n,求在[1,n]这个范围内两两互质的数的个数.(转化为给定一个数n,比n小且与n互质的数的个数) 知识点: 欧拉函数: 普通求法: int Euler( ...
- 51Nod-1136 欧拉函数
51Nod: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1136 1136 欧拉函数 基准时间限制:1 秒 空间限制: ...
随机推荐
- spring容器初始化执行某个方法
在做web项目开发中,尤其是企业级应用开发的时候,往往会在工程启动的时候做许多的前置检查. 比如检查是否使用了我们组禁止使用的Mysql的group_concat函数,如果使用了项目就不能启动,并指出 ...
- HDU #2966 In case of failure
Overview 给出平面上两两不重合的\(n\)个整点, 求每个点到它在其他\(n-1\)个点的最近临点的欧几里得距离的平方. Solution k-d tree 模板题. 关于k-d tree, ...
- ubuntu14.04设置开机亮度
1 查看自己的系统亮度的最大值: cd /sys/class/backlight 笔记本的显卡型号不同->亮度调节文件夹名会不同. 2 我的是intel_backlight cd intel_b ...
- python 时间类型和相互转换
time有四种类型(time, datetime, string, timestamp) 1. time string string是最简单的表示time的方式 如如下代码生成的即为string &g ...
- vmware的安装
VMware Workstation是一款功能强大的虚拟机软件,在不影响本机操作系统的情况下,用户可以在虚拟机中同时运行不同版本的操作系统,用于开发.测试以及部署工作,这边小编为大家分享最新版本VMw ...
- NSNotificationCenter(通知)与Key-Value Coding (KVC)与Key-Value Observing (KVO)
NSNotificationCenter //下面是不同类中需要实现的代码 1.[[NSNotificationCenter defaultCenter] addObserver:self selec ...
- HTTPS背后的加密算法
当你在浏览器的地址栏上输入https开头的网址后,浏览器和服务器之间会在接下来的几百毫秒内进行大量的通信.InfoQ的这篇文章对此有非常详细的描述.这些复杂的步骤的第一步,就是浏览器与服务器之间协商一 ...
- SVM支持向量机的高维映射与核函数-记录毕业论文2
上一篇博客将了在数据集线性可分的情况下的支持向量机,这篇主要记录如何通过映射到高维解决线性不可分的数据集和如何通过核函数减少内积计算量的理论思想. [5]径向基函数的核函数:https://www.q ...
- 有了这个,再也不用每次连新机器都要设置secure crt属性了
我连服务器用的是secure crt,每次ssh新服务器的时候都得手动设置字符编码和背景颜色,今天问了旁边的开发原来可以全局设置,以后连服务器的时候就再也不用手动设置相关属性了.步骤如下: 一开始点击 ...
- Struts2 中Parameters是如何获取值的
刚刚学习struts2的知识,在练习struts2的默认语言OGNL过程中,对于<p>parameters:<s:property value="#parameters.u ...