计算几何——Uva 270 Lining Up

VLOOKUP_fixed.py 立即下载

 Lining Up 

"How am I ever going to solve this problem?" said the pilot.

Indeed, the pilot was not facing an easy task. She had to drop packages at specific points scattered in a dangerous area. Furthermore, the pilot could only fly over the area once in a straight line, and she had to fly over as many points as possible. All points were given by means of integer coordinates in a two-dimensional space. The pilot wanted to know the largest number of points from the given set that all lie on one line. Can you write a program that calculates this number?

Your program has to be efficient!

Input

The input begins with a single positive integer on a line by itself indicating the number of the cases following, each of them as described below. This line is followed by a blank line, and there is also a blank line between two consecutive inputs.
The input consists of N pairs of integers, where 1 < N < 700. Each pair of integers is separated by one blank and ended by a new-line character. The list of pairs is ended with an end-of-file character. No pair will occur twice.

Output

For each test case, the output must follow the description below. The outputs of two consecutive cases will be separated by a blank line. 
The output consists of one integer representing the largest number of points that all lie on one line.

Sample Input

1

1 1
2 2
3 3
9 10
10 11

Sample Output

3

思路:

对每一个点做作如下操作

以该点为坐标原点,求出剩余点相对于该点的斜率,然后排序,统计出斜率相同的点的个数。

时间复杂度为O(n2logn)

注意:

斜率不存在的点特殊处理

The outputs of two consecutive cases will be separated by a blank line.

#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

#define MAXN 705
#define MAXLEN 50
#define INF 0x7FFFFFFF

int x[MAXN], y[MAXN];
double slope[MAXN];

//统计斜率相同的点的个数
int MaxCount(int n)
{
	int maxCount = 0, count = 1;
	
	int i;
	for (i = 1; i < n; i++)
	{
		if (slope[i-1] == slope[i])
		{
			count++;
		}
		else
		{
			if (count > maxCount)
			{
				maxCount = count;
			}
			count = 1;
		}
	}
	if (count > maxCount)
	{
		maxCount = count;
	}
	//加上作为坐标原点的点
	return maxCount+1;
}

int MaxNPoints(int n)
{
	int maxNPoints = 0;
	int i, j, k;
	for (i = 0; i < n; i++)
	{
		for (j = i + 1, k = 0; j < n; j++, k++)
		{
			//斜率为无穷
			if (x[j] == x[i])
			{
				slope[k] = INF;
			}
			else
			{
				slope[k] = (double)(y[j] - y[i]) / (double)(x[j] - x[i]);
			}
		}

		sort(slope, slope+k);

		int npoints = MaxCount(k);
		if (npoints > maxNPoints)
		{
			maxNPoints = npoints;
		}
	}
	return maxNPoints;
}

int main(void)
{
	int ncases;
	scanf("%d\n", &ncases);

	while (ncases-- != 0)
	{
		char buff[MAXLEN];

		int i;
		for (i = 0; gets(buff) != NULL && buff[0] != '\0'; i++)
		{
			sscanf(buff, "%d%d", &x[i], &y[i]);
		}
		int n = i;

		printf("%d\n", MaxNPoints(n));
		if (ncases != 0)
		{
			putchar('\n');
		}
	}
	return 0;
}

YOLO26算法心电图十二导联目标检测+训练好的模型+368张数据集+pyqt可视化界面.zip 附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[导联I(I), 导联II(II), 导联III(III), 胸导联V1(V1), 胸导联V2(V2), 胸导联V3(V3), 胸导联V4(V4), 胸导联V5(V5), 胸导联V6(V6), 加压肢体导联aVF(aVF), 加压肢体导联aVL(aVL), 加压肢体导联aVR(aVR)] · 训练集:313 张 · 验证集:37 张 · 测试集:18 张 · 总计:368 张 该数据集聚焦于临床心电图信号的精准识别与定位,其核心检测目标为标准12导联心电图中的各个独立导联波形区域,涵盖肢体导联(I、II、III)与加压肢体导联(aVR、aVL、aVF),以及胸前导联(V1至V6),适用于心电图自动分析系统中对各导联位置的快速准确标注与分类。数据采集场景真实还原了医院心电图室或急诊监护环境下的标准心电图记录纸,波形清晰、基线稳定,具有高度临床参考价值。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 57 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9708** mAP50-95 | 0.6344 Precision | 0.8990 Recall | 0.9191 train/box_loss | 1.2231 train/cls_loss | 0.9703 val/box_loss | 1.2779 val/cls_loss | 0.... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。 立即下载

相关推荐

企业级AI助手平台 开箱即用的全栈AI平台,支持多智能体协同、Supervisor模式编排、多种决策模式、RAG技术和流程编排能力 支持多厂商大模型统一接入与管理,安全可控的企业知识库与高精度检索优化

企业级AI应用开发框架,支持多厂商大模型统一接入与管理,安全可控的企业知识库与高精度检索优化能力,提供可视化流程编排、自主决策智能体与多智能体协同调度,兼容主流 Agent Skill 协议,帮助企业与开发者零门槛快速构建安全、高效、可落地的AI智能体应用与行业解决方案。

oracle如何计算外接矩形,GIS常用的几何算法

因此我们可以先求出所有和线段相交的多边形的顶点,然后按照X-Y坐标排序(X坐标小的排在前面,对于X坐标相同的点,Y坐标小的排在前面,这种排序准则也是为了保证水平和垂直情况的判断正确),这样相邻的两个点就是在线段上相邻的两交点,如果任意相邻两点的中点也在多边形内,则该线段一定在多边形内。证明如下: 命题1:如果线段和多边形的两相邻交点P1 ,P2的中点P\'也在多边形内,则P1, P2之间的所有点都...

weixin_34141225的博客 383

基于动态窗口法DWA的机器人路径规划研究(Matlab代码实现)

内容概要:本文系统研究了基于动态窗口法(DWA)的机器人局部路径规划算法,深入剖析其在动态环境中实现自主避障与实时轨迹优化的核心机制。文章详细阐述了DWA算法的速度空间采样策略、轨迹预测模型、动力学约束处理及多目标代价函数的设计原理,并通过构建完整的Matlab仿真框架验证算法有效性。结合典型场景的仿真实验,展示了机器人在复杂障碍物环境下如何实时生成安全、平滑且符合运动学约束的最优路径,充分体现了DWA在移动机器人导航中的实用性与鲁棒性。; 适合人群:具备机器人运动规划基础知识和Matlab编程能力,从事智能移动机器人、自动驾驶或服务机器人研发的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解DWA算法的理论基础与实现细节;②掌握机器人局部路径规划的仿真实现方法;③为实际机器人系统的导航模块开发提供可复用的算法原型与代码参考;④作为进一步研究高级导航算法(如TEB、MPC)的技术基础。; 阅读建议:建议结合提供的Matlab代码逐模块分析与调试,重点关注速度采样、轨迹积分、障碍物距离计算及代价评估等关键环节,通过调整参数在不同地图环境中进行对比实验,以深刻把握算法性能与参数之间的关系,进而提升对实时路径规划系统设计的理解与应用能力。

POJ1118 HDU1432 Lining Up【水题】

Lining UpTime Limit: 2000MS Memory Limit: 32768KTotal Submissions: 26016 Accepted: 8153Description"How am I ever going to solve this problem?" said the pilot.Indeed, the pilot was not facing an easy t...

海岛Blog 1710

【轴承故障诊断】用于轴承故障诊断的集中时频分析研究(Matlab代码实现)

内容概要:本文系统研究了用于轴承故障诊断的集中时频分析技术,重点解决了传统时频分析方法在处理非平稳信号时存在的能量分散与分辨率不足等问题。通过引入集中时频分析方法,能够有效聚焦信号能量,精确提取轴承故障特征频率,提升故障识别的准确性与时效性。文章详细阐述了该方法的理论基础,并结合仿真信号与实际实验数据验证其优越性能,同时提供了完整的Matlab代码实现流程,涵盖信号预处理、时频变换、参数优化及结果可视化等环节,便于读者复现与拓展应用。; 适合人群:具备一定信号处理理论基础和Matlab编程能力的研究生、科研人员,以及从事机械设备状态监测、故障诊断与预测性维护工作的工程技术人员。; 使用场景及目标:①应用于电机、风机、齿轮箱等旋转机械的早期轴承故障检测,实现故障预警;②提升工业设备运维系统的智能化水平,支撑预测性维护体系构建;③作为高校或研究机构在信号处理、机械故障诊断等课程中的教学案例与实践素材。; 阅读建议:建议读者结合文中提供的Matlab代码逐段运行与调试,深入理解集中时频分布的生成机制及其关键参数(如核函数选择、平滑窗口大小)对诊断效果的影响,并尝试将其应用于其他类型的机械故障信号分析中,开展对比研究以深化对该方法适用性的认识。

西电微原课设——矩阵式键盘数字密码锁设计

内容要求:根据设定好的密码,采用4x4矩阵键盘实现密码的输入功能。当密码输入正确之后,锁就打开(绿灯亮),10秒之后,锁自动关闭(红灯亮);如果连续输入三次密码不正确,就锁定按键5秒钟,同时发出报警(黄灯闪),5秒后,解除按键锁定,恢复密码输入。...

Polaris的博客 1万+

POJ 1118 && HDU 1432 Lining Up(计算几何)

Description 给你n个点,求最多有多少点共线 Input 多组输入,每组用例第一行为点数n(n Output 对每组用例,输出共线点数最大值 Sample Input 5 1 1 2 2 3 3 9 10 10 11 0 Sample Output 3 Solution 暴力枚举两点,求出两点之后有多少点与这两点共线,更新最大值即可

ZSQ 644

INS/伪距组合导航(1)

星间单差GNSS/INS伪距紧组合

u014430081的博客 874

POJ1118 Lining Up 计算几何

题意:给你一个二维坐标上的几个点,问在同一条直线上最多几个点。 思路: N=700,刚开始我枚举两个点i,j。(两个点一条线),然后用k枚举一遍各个点。这样算出每条线上最多的点。 用了O(N^3)的超时了。我真是太天真了。 其实在枚举每个k的时候就可以想到。k明显有一些可以优化的地方。 优化: 之前是枚举每条线,现在是枚举每个点,对于每个点i,求i和其它所有点的斜率。 找出斜

Aszxqw 604

我的交叉验证翻车实录:从‘炼丹’到可靠评估,我是怎么用五折验证拯救我的图像分割模型的

本文分享了作者在医学图像分割模型评估中从失败到成功的实战经验。通过引入五折交叉验证方法,解决了传统数据划分的局限性,显著提升了模型评估的稳定性和泛化能力。文章详细介绍了Python实现、数据准备策略和训练流水线改造,为AI医疗影像分析提供了可靠的技术方案。

weixin_42625070的博客 269

人形机器人新产品导入(NPI)工艺工程师的角色与技术解析

本文系统解析人形机器人NPI工程师的核心职责与能力要求。主要内容包括:1)NPI工程师需主导装配工艺设计、样品试做及问题闭环,涉及公差分析(如尺寸链计算)、工艺评审与FMEA应用;2)要求输出完整工艺文档体系,并跟踪试产至量产全过程;3)任职资格强调3年以上机器人/智能制造行业经验,掌握SPC、公差计算等质量工具,熟悉点胶/焊接等工艺及特殊材料特性;4)通过实际案例展示关节精度优化、新物料验证等典型工作场景;5)提供基于职责的面试问题及技术性解答方案。文章聚焦技术细节,为从业者提供实用参考框架。

郑伟强dev的专栏 381

POJ 1118 Lining up 共线最大值

题目大意:给定N个坐标,求贡献

Orzmyk的专栏 670

2. Android_逆向的历史与发展

学完本节,希望你能够:了解 Android 逆向工程的发展历程,从早期 APK 破解到现代应用保护;入门先把这几类「在干啥」搞清楚,后面学脱壳、反反调试会顺很多。(反编译 APK 得到的类汇编代码,相当于程序的「菜谱」)就能绕过验证,到后来混淆、加固、反调试一起上,逆向难度越来越高。(第三节 什么是 CPU 指令集),帮你搞清楚「反汇编看到的那些指令」是从哪来的、和 Android 逆向有啥关系。有必要——先搞清「没加固时怎么玩」,再学脱壳和对抗,思路才顺。读起来费劲,但逻辑还在,耐心一点还能跟。

长沙火山 1390

UVa 270 / POJ 1118 Lining Up (计算几何)

270 - Lining Up Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=113&page=show_problem&problem=206 ``How am I ever going to solve this pro

AC,∑ndless 1756

rknn-toolkit推理yolov5-face.rknn模型--python代码

import os import urllib import traceback import time import sys import numpy as np import cv2 from rknn.api import RKNN ONNX_MODEL = 'yolov5s.onnx' RKNN_MODEL = 'yolov5s.rknn' IMG_PATH = './bus.jpg' DATASET = './dataset.txt' QUANTIZE_ON = True BOX_THR.

C/C++、嵌入式开发、深度学习算法、模型部署与推理优化 3079

RH850从0搭建Autosar开发环境【23】- Davinci Configurator之DCM实操实现DID的读取写入

RH850从0搭建Autosar开发环境【23】- Davinci Configurator之DCM实操实现DID的读取写入,结合Developer实现

weixin_42412049的博客 1809

UVA270-Lining Up

斜率斜率斜率......... #include #include #include #include #include #include #include using namespace std; struct node { int x,y; node(){} node(int a,int b){x=a;y=b;} }; int main

Last Order 1143

智能车图像处理11-进阶篇3--中线累积差值的统计

中线累积差值的统计在后面判断小S,以及长直道的时候都有用到,关键点在于中线的跳变 第12 - 13 行:comulants1 和comlants2代表的是两种不同的累差,取的行数不同 第14-17 行:comulants2取6到25行,其实就是My_Abs(LCenter[i], LCenter[i - 1])的累加 第18-21 行:comulants1去第1到40行 第27- 行: 计算了一下右线的开始于最终结束行,这里判断R_black是否为0,是和中线的提取中g

taiyuezyh的博客 3825

UVa 270 - Lining Up

题目:给你平面上n个点,求最多有几个点共线。 分析:计算几何。枚举基准点,其他点按基准点极角排序(斜率排序),然后枚举相邻直线判断统计即可。 说明:时间复杂度O(n*n*lg(n))。 #include #include #include #include #include #include using namespace std; typedef struct pnode

小白菜又菜 1230

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

UVA 270 Lining Up

题意:给你n个点,求出能在一条直线上的点的最大值。  Lining Up  ``How am I ever going to solve this problem?" said the pilot. Indeed, the pilot was not facing an easy task. She had to drop packages at

risker_2013的专栏 672

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

UVa OJ 题解索引

寂静山林 744

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

oracle--geometry关系运算

在oracle中,几何对象被保存为geometry。有一些函数可以计算geometry之间的关系。比如:sdo_geom.relate(a.geometry,'mask' ,b.geometry,误差)。可以判断2个几何之间的关系。 mask的值可以选 ANYINTERACT COVERS COVEREDBY INSIDE CONTAINS DISJOINT TOUCH 等等

huyishero的博客 1332

hdu1432lining up之坑爹题

Problem Description ``How am I ever going to solve this problem?" said the pilot.  Indeed, the pilot was not facing an easy task. She had to drop packages at specific points scattered in a dangerous

追梦的Anker 849

oracle 面积计算公式,利用Oracle Spatial求几何对象的长度和面积

http://www.cnblogs.com/clarkzheng/archive/2007/03/17/678532.html一、求几何对象的长度格式:SDO_GEOM.SDO_LENGTH(geom IN MDSYS.SDO_GEOMETRY,dim IN MDSYS.SDO_DIM_ARRAY[,unit IN VARCHAR2]) RETURN NUMBER;或SDO_GEOM.SDO_L...

weixin_36473057的博客 918

uva 270 Lining Up(暴力+ 几何)

题目连接:270 - Lining Up 题目大意:给出一系列点,要求找出共线的点数最大的值。 解题思路:暴力,遍历每两个点确定的直线上又多少点, 每次更新最大值。 三个点共线的性质:A(X1,Y1),B(X2,Y2),C(X3,Y3);这个时候有(Y2-Y1)/(X2-X1) = (Y3-Y2)/(X3-X2) 最好转化成(Y2 - Y1) * (X3 - X2) =  

不慌不忙、不急不躁 1591
上一篇: 第2章 递归与分治策略,二分搜索技术(查找不成功时,返回区间位置)
下一篇: Uva 10341 Solve It
庞老板
博客等级 码龄15年 127粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

庞老板

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值