POJ 1228 Grandpa's Estate 计算凸包+判断点在线段上

YOLO26算法水面与液体识别+训练好的模型+393张数据集+pyqt可视化界面.zip 附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[未获取()] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 52 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.8528** mAP50-95 | 0.3441 Precision | 0.7729 Recall | 0.8354 train/box_loss | 1.5367 train/cls_loss | 1.0228 val/box_loss | 1.6809 val/cls_loss | 1.1758 【训练过程分析】 我这次训练了52个周期,模型在训练初期确实收敛速度很快,前20个周期mAP50从0.74逐步提升至0.82,这说明模型开始适应数据集,学习到一些关键特征。但到第30个周期后,提升速度逐渐放缓,到了40个周期时,mAP50达到0.85,这个阶段的曲线走势有些像磨砂玻璃,平滑且不规则,后期更是趋于平缓,表明模型可能已经达到最优解,再继续训练可能会有少量提升但代价较大。整体而言,从loss曲线来看,训练集的box_loss和cls_loss在52个周期内分别从1.80和1.25降到1.54和1.02,下降曲线较为稳定,但到了后期,这两项指标下降幅度逐渐减缓,尤其cls_loss下降至1.10左右后趋于稳定,这可能是模型对训练数据已有了较强的泛化能力,但也提示我们分类的稳定性可能还欠些火候。 至于验证集的表现,box_lo... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。 立即下载

题目链接:http://poj.org/problem?id=1228

题目大意:给定n个二维坐标系中的点,这些点是一个凸多边形顶点的子集。判断这些点是否能唯一确定原来的凸多边形。

解题思路:
考虑多边形的一条边。对于给定两个端点,连起来变成一条边。原来的多边形中可能在这条边之外还有一个端点p',那么这条边在原多边形中可能就不存在。 那么怎么能确定一条边一定在原多边形中存在呢?

如果在一条线段上除了端点p1 p2之外有其他的点p3,那么这条边在原多边形中一定存在。因为不可能添加一个顶点使得这条线段仍然是凸的。p3限制了线段p1p2向外凸出。所以只需要先对点集求个凸包,然后判断凸包的每条边上是否都有除了端点之外的第三个点,使得这条边确定下来。如果凸包中的每条边都满足这个条件,便可唯一确定原来的凸多边形。

另外这道题也有需要特判的情况,以上的分析都基于能求出一个多边形凸包,实际上这样的凸包可能并不存在。我使用的是xy坐标排序的graham-scan算法,如果所有的点都共线的话,算法依然会求出一个点集(包括了输入的所有的点),并且可能判断出点集中每条的线段上都有第三个顶点,然后输出YES。实际上很显然,直线外可能存在其他的顶点把这条线“撑开”,答案应该是NO。所以必须特判所有顶点共线的情况。按照惯例,考虑n的极限情况,n=1时,只有一个顶点。这时候判断共线的函数会把这种情况判断成共线,所以n=1时也没有问题。

至于复杂度: 求凸包O(nlogn),判断唯一性时枚举每条边和每个点,O(nh),其中h是凸包中点的数目。所以总复杂度在O(nlogn)和O(nh)之间。

/*
 *  2014.11.8
 *  Problem: 1228	
 *  Memory: 204K		
 *  Time: 16MS
 */
#include "stdio.h"
#include "math.h"
#define EPS 1e-8
#define MAXN 2007

struct Point {
	double x, y;
}p[MAXN], c[MAXN];

int n, top;

void sort(int l, int r) {
	int i=l, j=r;
	double x = p[(l+r)>>1].x, y = p[(l+r)>>1].y;
	do {
		while (p[i].x<x || (p[i].x==x && p[i].y<y)) i++;
		while (p[j].x>x || (p[j].x==x && p[j].y>y)) j--;
		if (i<=j) {
			Point t = p[i]; p[i] = p[j]; p[j] = t;
			i++; j--;
		}
	} while (i<=j);
	if (i<r) sort(i, r);
	if (l<j) sort(l, j);
}

double max(double a, double b) {return a>b?a:b;}
double min(double a, double b) {return a>b?b:a;}

// 叉积
double cross(Point a, Point b, Point c) {
	double x1 = b.x-a.x, y1 = b.y-a.y;
	double x2 = c.x-a.x, y2 = c.y-a.y;
	return x1*y2-x2*y1;
}

// 判断是否左转, 包括共线情况
bool turnLeft(Point a, Point b, Point c) {
	return cross(a, b, c)>=-EPS;
}

// 求凸包
void convexHull() {
	sort(1, n);

	top = 1; c[top] = p[1];
	for (int i=2;i<=n;i++) {
		while (top>=2 && turnLeft(c[top-1], c[top], p[i])) top--;
		c[++top] = p[i];
	}
	int pn = top;
	for (int i=n-1;i>=1;i--) {
		while (top>=pn+1 && turnLeft(c[top-1], c[top], p[i])) top--;
		c[++top] = p[i];
	}
	top --;
}

// 判断点是否在线段上,不包括端点
bool onSegment(Point a, Point b, Point c) {
	if (fabs(cross(a, b, c))<EPS && 
	    min(a.x,b.x)<=c.x && c.x<=max(a.x,b.x) &&
	    min(a.y,b.y)<=c.y && c.y<=max(a.y,b.y) &&
		!((c.x==a.x&&c.y==a.y)||(c.x==b.x&&c.y==b.y)))
	    return true;
	return false;
}

// 验证凸包中的每一条边是否确定
bool verify() {
	c[top+1] = c[1];
	for (int i=1;i<=top;i++) {
		bool on = false;
		for (int j=1;j<=n;j++)
			if (onSegment(c[i], c[i+1], p[j])) {
				on = true;
				break;
			}

		if (!on) return false; 
	}
	return true;
}

// 判断所有点是否共线
bool collinear() {
	p[n+1] = p[1];
	p[n+2] = p[2];
	for (int i=1;i<=n;i++) 
	if (fabs(cross(p[i],p[i+1],p[i+2]))>EPS) return false;
	return true;
}

int main() {
	
	int t;
	scanf("%d", &t);
	while (t--) {
		scanf("%d", &n);
		
		for (int i=1;i<=n;i++) scanf("%lf %lf", &p[i].x, &p[i].y);

		// 判断顶点是否共线,如果共线直接输出NO
		if (collinear()) {
			printf("NO\n");
			continue;
		}

		// 求凸包, 凸包上的点保存在 c 数组中
		convexHull();

		// 判断凸包上的点是否能唯一确定一个凸多边形
		// 即判断凸包每条线段上都有除了端点外的点
		bool only = verify();

		if (only) {
			printf("YES\n");
		} else {
			printf("NO\n");
		}
	}
	return 0;
}

C#西门子上位机与PLC通讯++S7协议 支持S7-200,S7-300,S7-1200,S7-1500+使用技术C#+S7net 立即下载

相关推荐

MATLAB模拟6自由度无人机检查,具备干扰补偿、裂纹检测和自主复检功能。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

POJ 1228:Grandpa's Estate (稳定凸包)

Grandpa's Estate Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12816   Accepted: 3604 Description Being the only living descendant of his grandfather

小坏蛋_千千 1695

AI大模型医学影像诊断智能识别应用方案.pptx

AI大模型医学影像诊断智能识别应用方案.pptx

POJ 1228 Grandpa's Estate(稳定凸包)

题目: Being the only living descendant of his grandfather, Kamran the Believer inherited all of the grandpa's belongings. The most valuable one was a piece of convex polygon shaped farm in the grand...

slark_的博客 215

智能驾驶智慧交通行业智算中心(AIDC)建设规划方案.pptx

智能驾驶智慧交通行业智算中心(AIDC)建设规划方案.pptx

LLC谐振变换器恒压恒流双竞争闭环控制simulink仿真(附说明文档)

内容概要:本资源是一套面向电力电子与智能控制领域的综合性科研仿真资料合集,核心聚焦于LLC谐振变换器的恒压恒流双竞争闭环控制策略设计与Simulink建模仿真实现,涵盖半桥LLC、双向全桥LLC等拓扑结构的调频闭环仿真,并提供详尽的说明文档与PPT辅助材料。资源体系不仅深入呈现LLC变换器的动态响应与控制逻辑,还扩展至双有源桥(DAB)变换器的软开关协同优化、最小应力控制、EPS调制策略及新扩展移相角优化等前沿技术,同时集成三相PWM整流器在电网不平衡条件下的功率平衡控制、VOC+SVPWM双闭环控制等典型应用场景。此外,资源包涵盖状态估计(如EKF、UKF、PF)、微电网经济调度、卡尔曼滤波融合、神经网络控制、PID优化、储能系统管理等多个交叉方向,特别强调对顶级EI期刊研究成果的高精度复现,旨在帮助科研人员快速掌握先进控制算法的核心思想与仿真实现方法。; 适合人群:电气工程、自动化、电力电子、新能源科学与工程等相关专业的硕士博士研究生、高校科研人员,以及从事新能源变换器、智能电网、电动汽车、微电网系统研发的工程技术人员。; 使用场景及目标:① 深入理解LLC与DAB变换器的闭环控制机理,掌握恒压恒流切换、软开关实现与损耗优化方法;② 利用Simulink平台构建复杂电力电子系统模型,开展动态性能分析与控制器参数整定;③ 复现高水平期刊论文中的先进控制策略,提升科研创新能力与论文发表竞争力;④ 支持毕业设计、科研课题、项目申报及工程原型开发中的仿真验证环节。; 阅读建议:建议结合提供的完整资源目录循序渐进学习,优先研读标注“顶级EI复现”的案例以获取权威方法参考,配合MATLAB/Simulink动手搭建模型,重点关注控制框图设计、调制逻辑实现与仿真结果对比,深入理解算法背后的物理意义与数学推导过程。

POJ 1228 Grandpa's Estate(确定凸包)

题目链接: POJ 1228 Grandpa’s Estate 题意: 给出n个点,问由这n个点能不能位唯一确定一个凸包? 分析: 看到有网友将这称为稳定凸包。 其实就是确定这n个点所形成的凸包每条边上是不是至少有三个点。 当顶点数小于6的时候肯定是不能构成凸包的,这个特判下就好了。#include <iostream> #include <cstdio> #include <cstr

ramay7 508

概率神经网络的分类预测-基于PNN的变压器故障诊断(Matlab代码实现)

内容概要:本文系统阐述了基于概率神经网络(PNN)的变压器故障诊断方法,结合Matlab代码实现分类预测。通过提取变压器运行过程中的关键特征参数,构建PNN模型以实现对正常状态与典型故障状态(如绕组短路、铁芯故障等)的高效分类识别。文章深入剖析了PNN的网络结构、概率密度估计原理、训练机制及分类决策过程,并通过仿真实验验证了该方法在故障诊断任务中具备较高的准确率与鲁棒性,展现了其在电力系统状态监测与智能运维中的良好应用前景。; 适合人群:具备一定机器学习理论基础和Matlab编程能力的电气工程、自动化、智能电网等相关领域的研究生、科研人员以及从事电力设备状态监测与故障诊断工作的工程技术人员。; 使用场景及目标:①实现变压器早期故障的智能化诊断与预警,提升电力系统运行安全性;②为基于神经网络的工业设备故障分类任务提供可复现的算法实现范例与技术验证平台; 阅读建议:建议读者结合文中提供的Matlab代码,动手复现实验流程,深入理解PNN在实际分类问题中的参数配置、训练策略、性能评估方法,并鼓励将该方法迁移至其他电力设备或机电系统的故障诊断场景中进行拓展研究与优化改进。

POJ 1228 Grandpa‘s Estate(稳定凸包)

思路:是这样的,题目给你一大堆凸包的点,问你能不能唯一确定一个凸包(稳定凸包)。稳定凸包:每一条边上起码三个点。在构建凸包的时候要注意,先确定最下角的点,再进行极角排序然后构建,这样子方便后续判断三点共线。...

weixin_48024524的博客 177

优快云首页 发布文章 优快云同步助手 多无人机面向城市空中交通的多无人机路径规划研究(Matlab代码实现) 37 100 摘要:会在推荐、列表等场景外露,帮助读者快速了解内容,支持

内容概要:本文围绕面向城市空中交通的多无人机路径规划问题展开研究,系统阐述了该领域的核心挑战与关键技术。文章首先定义了多无人机路径规划的问题,明确了包括飞行安全、避障、协同效率在内的多项约束条件与性能指标。随后,重点介绍了三大类路径规划方法:基于改进RRT算法和图论的全局路径规划方法,用于构建初始可行路径;基于动态风险场的模型预测控制和动态窗口法(DWA)的动态避障方法,以应对环境中的突发障碍;以及多无人机协同规划策略和分布式协同控制算法构成的局部协同调整方法,确保多机间的飞行安全与任务协同。研究通过搭建Matlab仿真实验平台,设计了多种复杂城市飞行场景,对所提方法进行了全面的仿真验证与结果对比分析,展示了各方法在不同场景下的有效性与优劣。; 适合人群:具备一定自动化、计算机或航空航天领域基础知识,从事无人机、智能交通、路径规划等相关方向研究的研发人员和研究生。; 使用场景及目标:①为城市空中交通管理系统(UATM)的设计与开发提供理论基础和技术参考;②应用于物流配送、城市巡检、应急救援等多无人机协同任务的路径规划算法设计与仿真验证;③作为相关领域科研工作的技术参考资料,推动多智能体协同决策与控制技术的发展。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,通过复现仿真结果加深对各类算法原理与实现细节的理解。在学习过程中,应重点关注全局规划与局部避障的结合机制,以及多机协同策略中的冲突消解逻辑。

无刷直流电机BLDC转速电流双闭环+无位置传感器控制仿真【仿真+详解说明报告+参考文献】

内容概要:本文详细介绍了一套针对无刷直流电机(BLDC)的Simulink仿真资源包,核心内容涵盖转速电流双闭环控制与无位置传感器控制技术,重点采用滑模观测器(SMO)实现对转子位置与速度的精确估算,避免了物理位置传感器带来的成本与可靠性问题。资源包提供了多个高质量仿真模型,包括基于模糊PID与传统PID控制策略的对比分析、无感控制结合滑模观测器与双闭环PI控制的综合系统等,全面展示不同控制算法在动态响应、抗干扰能力及稳态精度方面的性能差异。所有模型均基于Matlab/Simulink平台构建,配套详尽的技术说明文档与参考文献,深入解析控制结构设计、观测器原理、参数整定方法及系统稳定性分析,适用于电机驱动系统的研究、教学演示与工程验证。; 适合人群:面向电气工程、自动化、控制科学与工程及相关专业的本科生、研究生、科研人员和工程技术人员,尤其适合从事电机控制、电力电子与运动控制系统研究的专业人士,具备自动控制理论基础和Matlab/Simulink基本操作能力者更易上手。; 使用场景及目标:① 深入学习并掌握无刷直流电机双闭环调速系统的工作原理与无位置传感器控制的关键技术;② 对比研究模糊PID与传统PID在电机控制中的动态性能与鲁棒性差异;③ 开展滑模观测器在非线性系统状态估计中的建模与仿真研究;④ 支持课程设计、毕业设计、科研项目申报及学术论文复现等实际应用场景。; 阅读建议:建议用户结合提供的详解说明报告,逐步运行各仿真模型,重点关注控制器参数调节过程、滑模观测器的设计细节及其收敛性表现,深入分析系统启动、负载突变、转速切换等工况下的响应特性,鼓励在此基础上进行控制算法改进、引入新型观测器或拓展至其他电机类型进行创新性研究。

POJ 1228 Grandpa's Estate

NO的两种可能: 1. 一条直线。 2.一条线上直有两个点。// // main.cpp // Richard // // Created by 邵金杰 on 16/8/9. // Copyright © 2016年 邵金杰. All rights reserved. // #include #include #include #include #include using nam

qq_33901573的博客 227

tft_espi 中文字体及自定义字体制作(tft.eSPI模块)

tft.eSPI库自定义字体方法 先下载 processing 然后安装到mixly安装目录下找到tft_eSPI文件夹。

琢磨侠的博客 2762

poj1228 Grandpa's Estate(凸包)

poj1228题目给你一些肯定在凸包上的点,问这些点构成的凸包是不是稳定的凸包。思路稳定凸包的话每条边上至少三个给定点。代码#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath>#define pi acos (-1) #define rotate Rotateusi

天道酬勤 324

美团外卖 mtgsig 1.2 逆向工程与补环境实战指南

本文深入解析了美团外卖核心风控参数mtgsig 1.2的生成机制与逆向实战。通过拆解其复杂的JSON结构,揭示了设备指纹、环境信息加密等关键字段。重点阐述了在Node.js中模拟浏览器环境(补环境)的核心方法,包括DOM/BOM对象、本地存储及Canvas/WebGL等高级指纹的模拟技巧,为安全研究和合规自动化测试提供了一套完整的技术指南。

uber9的博客 409

Abaqus滞回问题求解—浆锚连接装配式剪力墙滞回模拟

当下土木工程研究生,多数都在从事装配式混凝土构件安全或装配式混凝土构件连接节点力学性能的研究。研究这类问题,几乎脱离不开对有限元软件的使用,Abaqus求解能力非常强大,但模型处理能力相对较弱。装配式混凝土结构的有限元计算与传统现浇结构相比,其节点处理起来相对复杂,计算结果往往需要凸显出连接节点力学特性,所以对建模精程度的要求较高。所以向大家介绍一款工具—HyperMesh软件(一下简称Hm),它是专业的有限元前处理工具,用于处理装配式混凝土构件或连接节点有限元模型比较合适。这篇文章主要介绍如何利用Hm处理

qq_31918049的博客 2901

Grandpa's Estate(poj1228稳定的凸包)

题意:给你一个凸包的所有的点,求看其是否能组成唯一的凸包 思路:组成唯一的凸包,那么他的每一条边至少有三个点,因为如果有有两个点,那么可以再加一个点使得凸包扩大,所以每条边至少三个点。 这就和以前组成的凸包不太一样的,以前组凸包有可能没有考虑其边界上有点,因为这对面积没有什么影响,但是这题有影响,所以再求凸包的时候不能要边界上的点,等于说是求得了真正的凸包,每条边只有两个端点,然后枚举每条线段

leonharetd的专栏 1112

python音频信号分析

声音以具有诸如频率、带宽、分贝等参数的音频信号的形式表示,典型的音频信号可以表示为幅度和时间的函数

MAY的博客 2785

POJ1228-Grandpa's Estate(凸包)

Grandpa's Estate Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 10851   Accepted: 2953 Description Being the only living descendant of his grandfather, Kamr

mowayao的专栏 1233

无人机WIFI集群组网技术详解及成本分析

无人机WIFI集群组网技术是指利用无人机作为移动平台,通过集成高性能的WIFI模块,实现多架无人机之间以及无人机与地面控制站之间的无线通信组网。在协议层面,无人机WIFI集群组网需要遵循标准的无线通信协议,如IEEE 802.11系列(即WIFI标准),同时可能还需定制或优化路由协议、媒体访问控制(MAC)协议等,以确保高效、可靠的数据传输。数据安全与隐私保护:无人机集群组网中传输的数据可能涉及敏感信息,需采取加密、认证等安全措施,确保数据传输的安全性和用户隐私的保护。根据性能不同,价格差异较大。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 1582

华为OD机试2025C卷 - 精准核酸检测 (C++ & Python & JAVA & JS & GO)

华为OD机试2025C卷 精准核酸检测,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 1707

poj 1228 Grandpa's Estate (稳定凸包)

题目链接:poj 1288 题意:给出n个原来凸包的点,问能否根据这n个点推测出原来的凸包,若能,输出YES。 题解:我们先求出这n个点的凸包来,然后在判断新凸包每条边都有其它点在,那么可以说明此边是确定边,因为要想让一个凸包稳定,当且仅当凸包上任意一条边有3个以上的木桩(包括端点)。 例如这图,假设新凸包点为A,C,D,很容易可以看到CD边没有其它点,那么这条边就是不确定的,它有可能还...

Jiandong 259

Android 13.0 SystemUI下拉状态栏背景增加高斯模糊背景

在13.0的产品开发中,发现现在很多产品都是高斯模糊背景的,这种高斯模糊背景看起来效果很不错,产品开发需要SystemUI下拉状态栏背景也是高斯模糊背景,所以就要来实现下拉状态栏高斯模糊背景

安卓兼职framework和app工程师的博客 2670

Grandpa's Estate POJ - 1228(凸包极角序改写)

看了题目意思之后感觉哇,简单的 一批不就是判断线段之间有没有至少一个点嘛,,,,,结果wa到自闭,, 这个题的点有首先要根据点构造凸包,因为题目给的数据不一定是一个凸包,其次,我们在构造凸包极角排序的时候当点与左下角的点的角度大于90度的时候会把距离近的点排在前面,所以要改写极角排序的算法,,然后遍历每个点判断就行了,,多个点共线输出no,,然后傻逼的自己wa了一个晚上在于凸包都写不对,,哭 ...

leekerian的博客 573

matlab之作图设置游标的精度

matlab画出的figure游标的精度往往是固定的,这就对我们的调试和查看数据造成了不便。 那么怎么修改游标的精度呢? 首先,获取游标dcm_obj = datacursormode(gcf);然后对游标的精度进行设置:set(dcm_obj,'UpdateFcn',@NewCallback)这个NewCallback是什么东西呢?这是一个可以返回游标精度的函数,具体内容如下:function

落日之城 8957

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

简单几何(求凸包点数) POJ 1228 Grandpa's Estate

题目传送门 题意:判断一些点的凸包能否唯一确定 分析:如果凸包边上没有其他点,那么边想象成橡皮筋,可以往外拖动,这不是唯一确定的。还有求凸包的点数<=2的情况一定不能确定。 /************************************************ * Author :Running_Time * Created Time :...

weixin_34163741的博客 96

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

下一篇: POJ 1873 The Fortified Forest 计算凸包
f_cpp
博客等级 码龄12年 0粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值