POJ 3090 Visible Lattice Points[]

Apollo Control——超详细入门教程(六):MPC二次规划问题转化 专栏文章列表 Apollo Control——超详细入门教程(一):基于道路误差的车辆动力学模型 Apollo Control——超详细入门教程(二):连续状态空间方程离散化与离散LQR公式推导 Apollo Control——超详细入门教程(三):基于Frenet坐标系及XY坐标系的多项式轨迹生成 Apollo Control——超详细入门教程(四):控制模块轨迹误差计算 Apollo Control——超详细入门教程(五):油门刹车标定表之双线性插值算法 ... 阅读详情

【题意】本题要求从0出发能看到的不被重复覆盖的点数,有人用斜率判重水过了。

【解题思路】先考虑只有1×1的时候,三个点,根据图明显看出,只需要计算下三角,结果=下三角的个数×2再加1(斜率为1的点)。

那么我们只需要计算斜率从0到1之间的个数就行了,不包括1,包括0.结果设为sum,那么最终就是2*sum+1.

 1×1只有一个斜率为0的

 2×2斜率有0,1/2(0已经算过了,以后不再算了),其实就多了一个斜率为1/2的。

 3×3的时候,有1/3,2/3两个,比以前多了2个

 4×4的时候,有1/4,2/4(1/2已经有过了),3/4,所以也是2个

 5×5的时候,有1/5,2/5,3/5,4/5,之前都没有,所以多了4个

 6×6得到时候,有1/6,2/6(1/3已经有了),3/6(1/2已经有了),4/6(2/3已经有了),5/6,所以只剩2个。

。

。

。

从上面可以发现一个规律,对于n×n,可以从0,0连接到(n,0)到(n,n)上,斜率将会是1/n,2/n......(n-1)/n;

凡是分子和分母能够约分的,也就是有公约数,前面都已经有过了。所以每次添加的个数就是分子和分母互质的个数。

 

那么问题就转换为,对于一个数n,求小于n的于n互质的数的个数,这不就是欧拉函数么?欧拉函数我也不会,套模板了。


【AC代码】

#include <stdio.h>
const int Max = 1005;
int euler[Max];  
void Init(){   
     euler[1]=1;  
     for(int i=2;i<Max;i++)  
       euler[i]=i;  
     for(int i=2;i<Max;i++)  
        if(euler[i]==i)  
           for(int j=i;j<Max;j+=i)  
              euler[j]=euler[j]/i*(i-1);//先进行除法是为了防止中间数据的溢出   
}  

int main()
{
	int C,N;
	Init();
	while(~scanf("%d",&C))
	{
		int i;
		for(i=1; i<=C; i++)
		{
			int sum = 0;
			scanf("%d",&N);
			for(int j=1; j<=N; j++)
			{
				sum+=euler[j];
			}
			printf("%d %d %d\n",i,N,2*sum+1);
		}
	} 
	return 0;
}


汉书HE8,好用的汇编代码编写工具 汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大 立即下载

相关推荐

配置VS Code使用Linux服务器上的Matlab

0、需求 Linux服务器上安装有Matlab 无图形界面,只能使用命令行工具,编辑文件不方便 1、VS Code插件安装 在扩展商店中搜索matlab,会出现Matlab Extension Pack,里面有整理好的matlab扩展 这里只安装了第一排的三个扩展 2、设置(Windows、Mac的设置类似,只是不同系统的文件路径不同) 安装好扩展,重启VS Code后,进行设置 打开:文件→首选项→设置(或快捷键ctrl+,),搜索matlab,结果如下图所示;直接打开完整json配置文件(图

赵彬的博客 5009

[欧拉函数]Visible Lattice Points POJ3090

A lattice point (x,y) in the first quadrant (xandyare integers greater than or equal to 0), other than the origin, is visible from the origin if the line from (0, 0) to (x,y) does not pass through any other lattice point. For example, the point (4, 2)...

Cloth的博客 606

【VMware篇】7-通过ISO镜像升级VMware Esxi

本文主要介绍Dell服务器上安装的ESXi升级的方法之一(采用ISO升级)。

chen_yunan的博客 5516

Visible Lattice Points (欧拉函数)

Visible Lattice Points (欧拉函数)

GreenAppple的专栏 1558

SYSU-MM01数据集评估避坑指南:从RGB/IR图像理解到Python评估脚本调优

本文详细解析了SYSU-MM01数据集在跨模态行人重识别(ReID)评估中的关键技巧与常见陷阱。从RGB/IR图像理解到Python评估脚本优化,提供了数据评估模式选择、single-shot/multi-shot差异分析、特征文件处理规范等实用指南,帮助研究者避开指标异常问题,提升评估效率与准确性。

weixin_29044713的博客 196

【一】PCIe基础知识

Linux PCIe基础知识

他山之石 可以攻玉 4万+

【数论系列】 欧拉函数

我们知道互质是指两个正整数只有一个公因数1时,它们的关系叫做互质。欧拉函数就是对于一个正整数n, 求1~n中跟n互质的数有多少个。

这里是阿安的博客 1032

手把手教你自制Type-C OTG转换器(附电路图及避坑指南)

本文详细指导如何自制Type-C OTG转换器,包括核心电路设计、元器件选型及焊接技巧,特别强调硬件检测电路的关键作用。通过实测数据和避坑指南,帮助开发者解决兼容性问题,实现高效数据传输。

weixin_27038245的博客 714

欧拉函数 - Visible Lattice Points - POJ 3090

欧拉函数 - Visible Lattice Points - POJ 3090 在一个平面直角坐标系的第一象限内,如果一个点(x,y)与原点(0,0)的连线中没有通过其他任何点,则称该点在原点处是可见的。 例如,点(4,2)就是不可见的,因为它与原点的连线会通过点(2,1)。 部分可见点与原点的连线如下图所示: 编写一个程序,计算给定整数N的情况下,满足0≤x,y≤N的可见点(x,y)的数量(可见点不包括原点)。 输入格式 第一行包含整数C,表示共有C组测试数据。 每组测试数据占一行,包含一个整数N。

njuptACMcxk的博客 2759

Vue2 - 详细实现安装西瓜视频 xgplayer 插件详细配置及使用教程,利用西瓜视频播放器播放 mp4、flv、hls 格式视频文件及视频推流(直播或监控摄像头画面),支持移动端H5及PC网站!

vue2,nuxt2,西瓜视频,xgplayer,插件组件,xgplayer-hls,xgplayer-flv,xgplayer-mp4,播放视频点播和直播视频流,自定义播放器样式,截屏,监控视频,vue使用西瓜播放器播放flv、hls、mp4视频,截屏按钮,直播流,报错,黑屏,加载失败,苹果ios不兼容,重连,怎么改样式,很卡,详细教程,监控实时播放推流,倍速播放,在线flv在线推流地址,HLS播放,vue西瓜播放器,vue如何使用西瓜视频插件做直播推流回流,视频点播,flv在线视频流播放,截图功能,利用

🏆 前端领域优质创作者 1万+

Python爬虫实战:使用最新技术爬取新华网新闻数据

在当今信息爆炸的时代,网络爬虫技术已经成为获取互联网数据的重要手段。作为国内权威新闻媒体,新华网每天发布大量高质量的新闻内容,这些数据对于舆情分析、市场研究、自然语言处理等领域具有重要价值。本文将详细介绍如何使用Python最新技术构建一个高效、稳定的新华网新闻爬虫系统。本文详细介绍了如何使用Python最新技术栈构建一个高效、稳定的新华网新闻爬虫系统。我们从基础爬虫开始,逐步添加了代理支持、用户代理轮换、请求延迟、重试机制、动态页面渲染、数据存储等高级功能,最终实现了一个生产可用的分布式爬虫系统。

2201_76125261的博客 1771

Visible Lattice Points(莫比乌斯反演经典)

Visible Lattice Points Consider a N*N*N lattice. One corner is at (0,0,0) and the opposite one is at (N,N,N). How many lattice points are visible from corner at (0,0,0) ? A point X is visible from po...

codeswarrior的博客 791

Python实现FFT、小波变换和数据压缩

小波变换是一种分析信号的方法,可以分解信号成为多个尺度和频率的分量,从而更好地理解和处理信号。在Python中,我们可以使用pywt库来实现小波变换。在Python中,我们可以使用numpy库中的fft模块来实现FFT。数据压缩是一种将数据表示成更紧凑的形式的方法,可以减少存储空间和传输带宽。综上所述,Python提供了很多方便的工具来实现各种信号处理和数据压缩的方法。本文将介绍Python中如何实现傅里叶变换(FFT)、小波变换以及如何使用它们来进行数据压缩。Python实现FFT、小波变换和数据压缩。

学习使你进步。 693

POJ——3090 Visible Lattice Points(欧拉函数)

题目传送门:POJ——3090 Visible Lattice Points Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10420 Accepted: 6304 Description A lattice point (x, y) in the first quadrant (x and y are ...

HANGANG的博客 275

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

POJ3090 Visible Lattice Points

POJ3090 Visible Lattice Points /* * POJ3090 Visible Lattice Points * 欧拉函数 */ #include<cstdio> using namespace std; int C,N; //欧拉函数模板 int Euler(int n) { int ...

Youpeng 287

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

poj3090Visible Lattice Points

原题链接:http://poj.org/problem?id=3090 题目大意:行数与列数互质,星星就可见。矩阵对称,只需检查一半。 第一次未做特殊处理,复杂度是1000*1000*1000,TLE。 #include #include int GCD(int a,int b) { if(b == 0) return a; else return GCD(b,a%b); }

Ibigprogramer的博客 739

POJ - 3090 Visible Lattice Points(欧拉函数)

POJ - 3090 Visible Lattice Points 分析这道题目,我们发现除了(1,0),(0,1),(1,1)三个钉子,其他钉子被看到,只有满足了分析这道题目,我们发现除了(1,0),(0,1),(1,1)三个钉子,其他钉子被看到,只有满足了分析这道题目,我们发现除了(1,0),(0,1),(1,1)三个钉子,其他钉子被看到,只有满足了 1≤x,y≤N,x≠y1≤x,y≤N,x≠y而且gcd(x,y)=11≤x,y≤N,x≠y1≤x,y≤N,x≠y 而且gcd(x,y)=11≤x,y≤N

00后的博客 183

POJ 3090 Visible Lattice Points(欧拉函数)

题目链接: POJ 3090 Visible Lattice Points 题意: 给你一个方格,问从最左下角最多能看到多少点? 分析: 其实还是欧拉函数~#include <iostream> #include <cstdio> #include <cstring> #include <string> #include <algorithm> #include <climits> #in

ramay7 582

POJ 3090 Visible Lattice Points

Visible Lattice Points Time Limit: 1000MS Memory Limit: 65536K Description A lattice point (x, y) in the first quadrant (x and y are integers greater than or equal to 0), other than the origin, is vi...

忘梦心的博客 238

poj3090-Visible Lattice Points

http://poj.org/problem?id=3090 法雷级数,,欧拉函数 #include #include #include using namespace std; #define maxn 1000005 #define INT __int64 int Prime[ maxn + 1 ] ; INT ans[ maxn + 1 ] ; void prime()

bo-jwolf的专栏 1212

poj 3090 Visible Lattice Points

Description A lattice point (x, y) in the first quadrant (x andy are integers greater than or equal to 0), other than the origin, is visible from the origin if the line from (0, 0) to (x,y) does

steamqueen的专栏 633

Visible Lattice Points POJ - 3090

http://poj.org/problem?id=3090 预处理答案 ans[i]比ans[i-1]多出来的部分 就是2*f(i) 也就是看多出来的一圈点中有多少点与(0,0)的横纵坐标之差互质 画画图就出来了 #include <cstdio> #include <cstring> #include <algorithm> using name...

sunyutian1998的博客 213

POJ-3090 Visible Lattice Points

题目: http://poj.org/problem?id=3090 题意: 就是给出一个二维点阵的大小,问从(0,0)点能看到的点的个数。 思路: 一开始最基本的思路就是枚举斜率,所有斜率相同的点是重复的,数据小就1e3,所以理论上那个可行。 之后发现所有能看到的点的斜率也就是分子分母互质的数,也就是所有真分数的个数。 后来知道这叫做法雷级数,像这样:       F1: 0/1

MyWorld 443

Visible Lattice Points[POJ3090]

题面描述 传送门 思路 详细参考 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<cstdlib> using namespace std; const int N=1010; const int inf=1000; int p...

lb2003 172

POJ3090 Visible Lattice Points

题目链接:http://poj.org/problem?id=3090   和一道叫兔八哥什么的题是差不多的   涉及到网格图上的一个问题:判断(x1,y1)和(x2,y2)的连线上有没有其它格点   当gcd(|x1-x2|,|y1-y2|)=1时,是满足要求的   所以就是结合线性筛,用欧拉函数phi搞一搞就好了   贴代码 #include #include using name

白云千载空悠悠 318
上一篇: 欧拉函数模板
下一篇: 分数类重载
just_sort
博客等级 码龄11年 2357粉丝 1667原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值