国庆集训day6 T2 欧拉函数求互质数个数
来源:互联网 发布:jenkins自动部署linux 编辑:程序博客网 时间:2024/06/08 03:05
Description
Input Format
第一行一个正整数N,表示要求经过N次反射后经过发射的位置。
Output Format
输出共一行,表示方案数。
Sample Input
3
Sample Output
2
Hint
【数据范围】
对于60%的数据,N<=10^6
对于100%的数据,N<=10^12
- 首先,显然位置任意,从哪个点发射光线,情况相同。
- n次反射,触碰n+1次内壁,第n+1次回到起点。
-反射角范围0<θ<π。
解决方法:
- 画图,模拟简单的数据,n次反射后能回到起点满足什么条件
-在考场上,我先把起点也当做一个发射点,连结相邻两个反射点,反射点在圆上,能不能利用圆的性质呢?
-画出这条弦的圆周角,n次反射,n+1段弦,n+1个圆周角,因为回到原点,所以,n+1个圆周角肯定为2π的倍数。且圆周角即2θ。
欧拉函数求解:
codes
int Euler(int n) { int ans=n; for(int i=2;i*i<=n;i++) { if (n % i==0) { ans=ans/i*(i-1); while (n % i==0)n/=i; } } if(n>1)ans=ans/n*(n-1); return ans; }
时间n的平方根。
此题codes:
#include <cmath>#include <string>#include <map>#include <stack>#include <vector>#include <set>#include <queue>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<algorithm>#define INF 0x3f3f3f3flong long n,ans;int main(){ scanf("%lld",&n); n=n+1; ans=n; for (long long i=2;i*i<=n;i++) { if (n%i==0) { ans=ans/i*(i-1); while (n%i==0) n=n/i; } } if (n>1) ans=ans/n*(n-1); printf("%lld",ans); return 0;}
在考场上,虽然想到了很关键的转换模型,但还是考虑不够全面,不够冷静,没有打出正解。
0 0
- 国庆集训day6 T2 欧拉函数求互质数个数
- 神炎皇(???)题解【求互质数个数(欧拉函数)】
- HDU 2824 欧拉函数 求小于等于n且与n互质数的个数
- 【泉州一中国庆集训day6】String
- 欧拉函数求小于n的互质数 Java模板
- 筛法求质数,欧拉函数
- 欧拉线性筛求质数
- 质数快速筛法;欧拉函数线性打表;因子个数,因子和打表
- HDU 2588 GCD 【利用欧拉函数求约数个数】
- poj 1284欧拉函数求素数元根个数
- 【2015广东工业大学新生赛D】【数论-欧拉函数】求互质对数 1~n中互质数对数
- 求与N互质数的个数
- UVA 12493 Stars (欧拉函数--求1~n与n互质的个数)
- UVA12493 - Stars(求1-N与N互质的个数)欧拉函数
- 欧拉函数(求与n互质的数的个数)
- 欧拉函数--(求小于n的整数中与n互质的个数)
- 欧拉函数(求与n互质的数的个数)
- 欧拉定理——小于N的互质数的个数
- ubuntu安装程序缺少包依赖关系问题
- Sql数据库2=0926
- 缓存淘汰算法--LRU算法
- 慕课网学习笔记之数据结构树(C++)
- matlab中用于数据的标准化处理的zscore函数
- 国庆集训day6 T2 欧拉函数求互质数个数
- AwesomePlayer的准备工作
- Hibernate中pojo注解介绍
- SQL数据库3=0927
- JAVA设计模式-模板类型模式
- Is It A Tree?(POJ1308/HDU1325)(A)
- JAVA设计模式-策略模式
- 项目设计开发==(0928-0930)
- 解决font property font-family does not have generic default