POJ 3090 (欧拉函数) Visible Lattice Points
题意:
UVa 10820
这两个题是同一道题目,只是公式有点区别。
给出范围为(0, 0)到(n, n)的整点,你站在原点处,问有多少个整点可见。
对于点(x, y), 若g = gcd(x, y) > 1,则该点必被点(x/g, y/g)所挡住。
因此所见点除了(1, 0)和(0, 1)满足横纵坐标互素。
最终答案为,其中的+3对应(1, 1) (1, 0) (0, 1)三个点
1 #include <cstdio> 2 3 const int maxn = 1000; 4 int phi[maxn + 10]; 5 6 void get_table() 7 { 8 for(int i = 2; i <= maxn; ++i) if(!phi[i]) 9 { 10 for(int j = i; j <= maxn; j += i) 11 { 12 if(!phi[j]) phi[j] = j; 13 phi[j] = phi[j] / i * (i - 1); 14 } 15 } 16 } 17 18 int main() 19 { 20 freopen("3090in.txt", "r", stdin); 21 22 get_table(); 23 for(int i = 1; i <= maxn; ++i) phi[i] += phi[i - 1]; 24 25 int T; 26 scanf("%d", &T); 27 for(int kase = 1; kase <= T; ++kase) 28 { 29 int n; 30 scanf("%d", &n); 31 printf("%d %d %d\n", kase, n, phi[n]*2+3); 32 } 33 34 return 0; 35 }
代码君
转载于:https://www.cnblogs.com/AOQNRMGYXLMV/p/4170875.html
POJ 3090 (欧拉函数) Visible Lattice Points相关推荐
- POJ 3696 欧拉函数+快速幂
题目的意思大概就是问是否存在一串全是8的数字是L的倍数 直接想没有什么想法,要想到用简洁的形式将这个数字表示出来,对于每一位都是8的数字我们可以用 X=8*(10k-1)/9的形式表示出来,那么题目的 ...
- POJ 3090 Visible Lattice Points 【欧拉函数】
<题目链接> 题目大意: 给出范围为(0, 0)到(n, n)的整点,你站在(0,0)处,问能够看见几个点. 解题分析: 很明显,因为 N (1 ≤ N ≤ 1000) ,所以无论 N 为 ...
- poj 3090 amp;amp; poj 2478(法雷级数,欧拉函数)
http://poj.org/problem?id=3090 法雷级数 法雷级数的递推公式非常easy:f[1] = 2; f[i] = f[i-1]+phi[i]. 该题是法雷级数的变形吧,答案是2 ...
- poj 3090 Visible Lattice Points(离线打表)
这是好久之前做过的题,算是在考察欧拉函数的定义吧. 先把欧拉函数讲好:其实欧拉函数还是有很多解读的.emmm,最基础同时最重要的算是,¢(n)表示范围(1, n-1)中与n互质的数的个数 好了,我把规 ...
- POJ 2480 (约数+欧拉函数)
题目链接: http://poj.org/problem?id=2480 题目大意:求Σgcd(i,n). 解题思路: 如果i与n互质,gcd(i,n)=1,且总和=欧拉函数phi(n). 如果i与n ...
- 数论 - 分解质因数+欧拉函数 - Relatives POJ - 2407
数论 - 分解质因数+欧拉函数 文章目录 数论 - 分解质因数+欧拉函数 一.分解质因数 二.欧拉函数 三.模板: Relatives POJ - 2407 一.分解质因数 由 算 术 基 本 定 理 ...
- poj 2480 (欧拉函数应用)
点击打开链接 //求SUM(gcd(i,n), 1<=i<=n) /*g(n)=gcd(i,n),根据积性定义g(mn)=g(m)*g(n)(gcd(m,n)==1)所以gcd(i,n)是 ...
- POJ - 1284 Primitive Roots(原根+欧拉函数)
题目链接:点击查看 题目大意:给出一个模数 p ,求 p 有多少个原根 题目分析:算是补充了一个知识点吧,模数 p 的原根个数为 p[ p[ n ] ] ,p 为欧拉函数 证明博客:https://b ...
- POJ - 2480 Longge's problem(欧拉函数+唯一分解定理)
题目链接:点击查看 题目大意:给出一个n,求 题目分析:因为N到了二的三十二次方,所以直接暴力肯定会T,这里介绍两种方法,都可以做实现这个题目 首先我们需要转化一下这个题目,先说一下优化过后的暴力枚举 ...
最新文章
- Ajax---局部刷新
- salesforce bigobject 的限制_苹果进一步限制第三方维修
- HTTP 协议详解--转
- 树转化为二叉树_森林转化为二叉树(详解版)
- 老板问我桌面演练(TTX)是什么,我直接给他发了定义、示例和目标
- Java IO流之普通文件流和随机读写流区别
- C++头插法尾插法建立单链表,合并两个有序单链表
- 基于JAVA+Servlet+JSP+MYSQL的客户充值缴费管理系统
- mongodbVUE基本操作(转)
- Socket通信入门小实例
- 浅谈C#实现Web代理服务器的几大步骤
- php 调试 500,利用WordPress开发者调试模式解决PHP500内部服务器错误 | 骤雨打新荷...
- 在WPF里面实现以鼠标位置为中心缩放移动图片
- Excel多级下拉菜单的制作
- 从含有数字的字符串中提取数字
- 矩阵 LUP 分解 解线性方程组 求行列式值 矩阵求逆 算法说解
- HiWork告诉你:拿什么来拯救你,我的时间!
- Python基础笔记——函数
- android中小火箭动态喷射动画的简单实现
- Web自动化测试02