【AI面板识别】

news/2025/2/21 11:03:42/

题目描述

AI识别到面板上有N(1 ≤ N ≤ 100)个指示灯,灯大小一样,任意两个之间无重叠。

由于AI识别误差,每次别到的指示灯位置可能有差异,以4个坐标值描述AI识别的指示灯的大小和位置(左上角x1,y1,右下角x2,y2),

请输出先行后列排序的指示灯的编号,排序规则:

  1. 每次在尚未排序的灯中挑选最高的灯作为的基准灯,
  2. 找出和基准灯属于同一行所有的灯进行排序。两个灯高低偏差不超过灯半径算同一行(即两个灯坐标的差 ≤ 灯高度的一半)。

C语言代码

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include"math.h"
#include"string.h"
#include"stdlib.h"
#define MAX_LIGHTS  100typedef struct {int id;int x;int y;int r;
}Light;int compareByY(const void* a, const void* b)
{return ((Light*)a)->y - ((Light*)b)->y;
}
int compareByX(const void* a, const void* b)
{return ((Light*)a)->x - ((Light*)b)->x;
}int main()
{int n;Light lights[MAX_LIGHTS];Light rowLights[MAX_LIGHTS];scanf("%d", &n);for (int i = 0; i < n; i++){int id, x1, y1, x2, y2;scanf("%d %d %d %d %d", &id, &x1, &y1, &x2, &y2);int cx = (x1 + x2) / 2;int cy = (y1 + y2) / 2;int rad = (x2 - x1) / 2;lights[i] = {id,cx,cy,rad};}qsort(lights, n, sizeof(Light), compareByY);//int result[MAX_LIGHTS];int resultIndex = 0;int i = 0;while (i < n){int rowCount = 0;Light ref = lights[i];rowLights[rowCount++] = ref;i++;while (i < n && abs(lights[i].y - ref.y) <= ref.r) {rowLights[rowCount++] = lights[i];i++;}qsort(rowLights, rowCount, sizeof(Light), compareByX);for (int j = 0; j < rowCount; j++) {result[resultIndex++] = rowLights[j].id;}}for (int i = 0; i < resultIndex; i++) {printf("%d ", result[i]);}printf("\n");return 0;
}


http://www.ppmy.cn/news/1573603.html

相关文章

Django 连接(sqlserver)数据库方法

文章目录 django 的SQL server适配器&#xff0c;例如django-pyodbc-azure 或 mssql-django1、django-pyodbc-azure2、mssql-django3、注意 Django只内置了几个 Database Backend&#xff08;mysql、oracle、sqllite3&#xff08;默认&#xff09;、postgresql_psycopg2&#x…

Winform(C#) 项目保存页面

上一张我们已经实现了TCP和串口页面的数据展示&#xff0c;和保存控件 我们这一章&#xff0c;实现如何去&#xff0c;控制保存。 一、控件展示 CheckBox TextBox Button label Name: checkSaveImage checkDelete txtSaveDays txtSaveImagePath btnSelectIm…

【Pandas】pandas Series reindex_like

Pandas2.2 Series Computations descriptive stats 方法描述Series.align(other[, join, axis, level, …])用于将两个 Series 对齐&#xff0c;使其具有相同的索引Series.case_when(caselist)用于根据条件列表对 Series 中的元素进行条件判断并返回相应的值Series.drop([lab…

OSPF协议五种网络类型中DR和BDR选举说明

OSPF协议五种网络类型中DR和BDR选举说明 OSPF链路类型有3种&#xff1a;点到点&#xff0c;广播型&#xff0c;NBMA(非广播-多路访问网络&#xff08;Non-Broadcast Multiple Access&#xff0c;NBMA&#xff09;)。 在3种链路类型上扩展出5种网络类型&#xff1a;点到点&…

如何启动 Linux Debian/Ubuntu 等 SSH 服务器

文章目录 引言正文一、什么是 SSH&#xff1f;二、安装 SSH 服务器三、验证 SSH 服务是否运行四、配置 SSH 服务器五、使用 SSH 客户端连接到服务器六、安全优化七、常见问题及解决方法 总结 引言 SSH&#xff08;Secure Shell&#xff09;是一种用于远程登录和执行命令的安全…

uniapp 滚动尺

scale组件代码&#xff08;部分class样式使用到了uview1.0的样式&#xff09; <template><view><view class"scale"><view class"pointer u-flex-col u-col-center"><u-icon name"arrow-down-fill" size"26&qu…

变相提高大模型上下文长度-RAG文档压缩-3.优化map-reduce(reranker过滤+社区聚类)

我遇到的业务问题实际上是RAG需要处理很多同一对象的日常报告&#xff0c;不像常识类问题&#xff0c;它的相关Document更多而且更分散&#xff0c;日常报告代表数据库里有很多它的内容&#xff0c;而且对象可能只在段落中的几句话提及到。top-k数量受限于大模型长度&#xff0…

AI全栈开发_人工智能AI大模型 Prompt提示词工程详解(全方位介绍及运用)

AI引领的第四次工业革命正席卷而来&#xff0c;如何精准把握这一历史性的机遇&#xff0c;将成为我们这一代人不容忽视且需深入思考与积极行动的重要课题。未来几年AI将会像计算机一样快速普及&#xff0c;面对这一历史性的第一波红利&#xff0c;你是否已准备好把握机遇&#…