POJ 2074 Line of Sight 直线相交+线段覆盖

YOLOv11涨点改进| TGRS 2026 顶刊| 注意力改进篇| 引入MSEA多尺度边缘感知注意力,助力红外小目标检测、遥感目标检测、工业缺陷检测、图像去雨雾任务高效涨点 🔥本文提出了一种基于MSEA多尺度边缘感知注意力的YOLOv11改进模型,通过增强网络对边缘、纹理和细粒度信息的感知能力,显著提升复杂背景下的目标检测性能。MSEA模块采用多尺度空洞卷积提取上下文特征,并通过边缘监督和注意力融合机制强化目标边界信息。实验表明该方法在小目标、边界模糊目标和复杂纹理目标检测任务中表现优异,尤其在遥感、工业缺陷和红外检测等场景具有显著优势。文章详细介绍了MSEA的结构原理、核心代码实现、模块配置方法以及三种YOLOv11改进方案. 阅读详情

题目描述: http://poj.org/problem?id=2074


题目大意:

从一条路上看路一边的建筑师的家,视线可能会被其他的障碍物挡住(不考虑高度),问从这条路上能看到完整的建筑师的房子的一段路的最大长度。若整条路上都无法看见则输出“No View”, 路、房屋和障碍物都抽象成平行线段。


解题思路:

首先考虑房屋h,和路r,之间的某一条线段p。设p的左端点和h的右端点的连线与r的交点a,p的右端点和h的左端点的连线与r的交点b。容易发现当走在ab之间时视线会被挡住。对于每一条线段都可以尝试求出覆盖在r上的“盲区“ab。相当于线段覆盖,而我们只要求出不被覆盖的最大长度就好了。注意有的线段形成的盲区可能不在线段r上或者有一端不在r上,需要特殊判断。

以上考虑的是在h和r之间的线段,题目只说了障碍物不会与h和r相交,但可能在h与r之间的区域外。这种情况下障碍物不会对视线产生影响,但是用以上的方法可能计算出在r上的交点,造成WA。所以读入的时候判断一下,如果不在h与r之间直接忽视掉。

剩下的就是怎么计算最大不被覆盖的线段的问题。我们可以先把所有盲区线段以左端点坐标为关键字从小到大排序,然后从左到右扫一遍,一边维护i之前所有线段的最右端的x坐标lastX。如果第i个盲区的左端点大于lastX,那么lastX到i的左端点的这片区域都是不被覆盖的。扫描每个线段时更新lastX。r的左右端点需要特别判断一下。


复杂度:

计算盲区O(n),计算最大长度O(n)。复杂度O(n)。


<span style="font-family:Microsoft YaHei;font-size:12px;">/*
 * 	2014.11.09
 *	Problem: 2074	
 *	Memory: 192K		        Time: 0MS
 *	Language: C++		Result: Accepted
 *
 */

#include <iostream>
#include <algorithm>
#include <cmath>
#define EPS 1e-8
#define MAXN 107

using namespace std;

struct Event {
	double x1, x2;
}v[MAXN<<2];

int n, vn;
double hx1, hx2, hy, rx1, rx2, ry;

bool compare(struct Event a, struct Event b) {
	return a.x1<b.x1;
}

double getEventX(double x1, double y1, double x2, double y2) {
	return x1 - (y1-ry)*(x2-x1)/(y2-y1);
}

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

void init() {
	double v1, v2, x1, x2, y;
	vn = 0;
	scanf("%d", &n);
	for (int i=1; i<=n; i++) {
		scanf("%lf %lf %lf", &x1, &x2, &y);
		if (y >= hy || y <= ry) continue;
		v1 = getEventX(x1, y, hx2, hy);
		v2 = getEventX(x2, y, hx1, hy);
		if (v2-rx1<=EPS || v1-rx2>=-EPS) continue;
		vn++;
		v[vn].x1 = max(v1, rx1); v[vn].x2 = min(v2, rx2);
	}
}

int main() {	
	scanf("%lf %lf %lf", &hx1, &hx2, &hy);
	while (hy!=0 && hx1!=0 && hx2!=0) {
		scanf("%lf %lf %lf", &rx1, &rx2, &ry);

		init();
	
		sort(v+1, v+1+vn, compare);

		double length=0, lastX=0;;
		for (int i=1;i<=vn;i++) {
			if (v[i].x1>lastX) {
				length = max(length, v[i].x1-lastX);
				lastX  = v[i].x2;
			} else {
				lastX  = max(lastX, v[i].x2);
			}
		}
		length = max(length, rx2 - lastX);

		if (fabs(length)<EPS) {
			printf("No View\n");
		} else {
			printf("%.2lf\n", length);
		}
		
		scanf("%lf %lf %lf", &hx1, &hx2, &hy);
	}
	return 0;
}</span></span></span></span>



基于环形槽谐振器与PIN二极管的频率可重构Vivaldi天线设计与CST仿真研究 摘要 本文设计了一种基于FR4基板的频率可重构Vivaldi天线,通过集成环形槽谐振器(CSRR)和PIN二极管开关实现超宽带(UWB,2-8 GHz)与窄带(2.4/3.5/5.2 GHz)模式的电控切换。天线采用指数渐变槽线结构,结合CSRR的滤波特性和PIN二极管的开关功能,利用CST仿真优化参数。结果表明,UWB模式下S11<-10 dB,窄带模式下目标频点谐振显著,其他频段抑制良好,验证了设计的可行性。该方案为多频段无线通信系统提供了紧凑、低成本的可重构天线解决方案。 关键词:频率可重构天线 阅读详情

相关推荐

Unity程序化河流生成工具Waterways:从算法到实践的全流程解析

程序化内容生成(PCG)是游戏开发与三维建模领域的关键技术,它通过算法自动创建游戏内容,显著提升开发效率。其核心原理是将设计规则转化为可执行的代码逻辑,从而生成复杂、多样且符合自然规律的环境资产。在开放世界游戏和模拟经营类项目中,程序化生成技术能够快速构建大规模、高一致性的自然场景,如山川、森林与水体网络。Unity引擎作为广泛使用的开发平台,其地形系统与着色器管线为程序化工具的集成提供了强大基础。本文聚焦于利用Waterways这一Unity工具集,深入探讨如何通过模拟重力驱动、流量累积等自然水力原理,在

weixin_33690963的博客 684

poj 2074 poj2074 区间求并

题目地址:poj2074 题目大意:   让你求出prpperty line 上最长的,可以看见完整的house的区间。 首先针对每一个障碍物,求出property line 上不能看见完整房子的区域,然后依次可以求出一批这样需要排除的区间。 最后从p_A ~p_B 上去排除,世界山是再并上 (-oo,p_A)  ,( p_B,+oo )  ,最后如果结果不是直线的全体就行,取出最大“中断”

Jingqi@Mr.B的ACM博客 576

Mathtype公式下标深度调整技巧:解决固定行距下的显示不全问题

本文针对在Word等文档中设置固定行距时,Mathtype公式下标显示不全的问题,提供了专业解决方案。核心在于调整Mathtype软件内部的“下标深度”参数,通过修改单个公式或批量格式化全文,使公式完美适配固定行距,确保下标清晰完整,且不影响文档整体排版。

pepsi的博客 1498

POJ2074 Line of Sight

今天刚写的一道比较好玩的计算几何题。 大致题意:有一栋房子和一条马路,房子和马路之间有一些障碍物,房子,马路,障碍物都可以视作平行x轴的线段,告诉你马路,房子,若干障碍物的端点坐标,现在要求计算马路上最长的一段,这一段所有的点都可以看到房子,请输出这个长度,否则输出No view 思路:对于某个障碍物而言,求出经过障碍物右端点和房子左端点的直线,以及经过障碍物左端点和房子右端点的直线,这两条直线分别与马路相交,在马路上构成两个交点,这两个交点 之间的线段上的每一个点必然是看不见房子的(姑且称之为"阴影部

m0_53387935的博客 627

手把手教你构建轻量级CLIP模型:从理论到实践

本文手把手教你从零构建一个轻量级CLIP模型,深入解析其核心原理——对比学习,并提供完整的代码实践。通过精简的模型架构、数据准备和训练循环实现,帮助读者彻底理解多模态模型如何让图像与文本在共享空间中对齐,为学习更复杂的AI模型打下坚实基础。

weixin_29100927的博客 325

SSD盘符漂移导致OSD down场景模拟与恢复

运维团队反馈一个问题,现象是:某个OSD对应的cache分区发生了变化,比如原来cache使用的分区是/dev/sde,后来还是这块盘,但分区信息不知何故,变成了/dev/sdf(产品OSD设备并不是根据分区名称来map,而是根据partlabel),最终的现象是这个OSD down了,没法启动.接到这个现象的反馈后,记录一下这个问题在lab的复现方法。

Gavin Blog 938

poj2074 Line of Sight

计算几何题目,特别要注意障碍物位于House Line上方或者Property Line下方时要首先排除。 http://poj.org/problem?id=2074 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #include &lt...

weixin_33862993的博客 138

C++ 工程实践(9):数据抽象

陈硕 (giantchen_AT_gmail)http://blog.youkuaiyun.com/Solstice  http://weibo.com/giantchen陈硕关于 C++ 工程实践的系列文章: http://blog.youkuaiyun.com/Solstice/category/8

陈硕的Blog 1万+

Poj 2074 Line of Sight

地址:http://poj.org/problem?id=2074 题目: Line of Sight Time Limit:1000MS Memory Limit:30000K Total Submissions:4148 Accepted:1291 Description An architect is very pr...

weixin_30355437的博客 165

华为OD统一考试 - 模拟消息队列(Java & Python& JS & C++ & C )

让我们来模拟一个消息队列的运作,有一个发布者和若干消费者,发布者会在给定的时刻向消息队列发送消息,

算法大师! 3518

使用R语言实战:构建Logistic回归模型

Logistic回归是一种基于概率的分类算法,它用于预测离散的结果变量(也称为响应变量或因变量)。与线性回归不同,Logistic回归的输出是一个概率值,通常在0和1之间。这使得它非常适合处理二分类问题。市场营销:预测客户是否会购买某个产品。医学研究:预测疾病的发生与否。信用风险评估:预测个人申请贷款的违约风险。社会科学:预测个人对某个政策的态度。

2301_79331230的博客 1139

POJ 2074 Line of Sight (计算几何--视线遮挡问题)

题目链接:http://poj.org/problem?id=2074 题意:(这道题本身不难,,但是我一开始题意读错,就一直脑壳疼....)题目先给了两条线段,L1表示房子,L2表示道路,然后给出n条线段表示障碍物(所有线段均平行x轴),然后问道路上最大的能看到整个房子的连续道路区间 思路:1.只考虑y坐标在L1和L2之间的障碍物 2.求出每个障碍物遮挡的道路盲区区间...

AmarisCR的博客 1255

【Python高阶开发】12. 工业知识图谱实战:从0构建设备故障诊断系统(附Neo4j部署+完整代码)

摘要:传统工业设备故障诊断依赖专家经验,存在知识难沉淀、故障定位慢、根因分析不彻底等痛点。本文基于开源工具栈(Neo4j+Py2neo+Spacy+FastAPI),从0到1构建工业知识图谱故障诊断系统。内容涵盖:知识图谱核心概念解析、Neo4j图数据库部署、工业设备本体设计、多源知识抽取(结构化Excel+非结构化手册)、图谱构建与查询、故障诊断与根因分析功能实现,以及可视化与API服务部署。每个模块附完整可运行代码及执行结果,新手可按步骤复现全流程,进阶读者可直接复用代码到实际项目

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1106

POJ 2074 Line of Sight

POJ 2074 Line of Sight 线段相交 其实就是枚举障碍物的坐端点和房子的右端点   还有就是障碍的右端点和房子的左端点构成的直线和风景的交点对; 然后就是求这中间没有被覆盖的最长的长度。 #include #include #include #include #include #include using namespace std; #define FOR(i,a,b

utoppia is another word . 669

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

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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

POJ2074:Line of Sight——题解

http://poj.org/problem?id=2074 题目大意:(下面的线段都与x轴平行)给两条线段,一个点在其中一条线段看另一条线段,但是中间有很多线段阻挡视线。求在线段上最大连续区间使得在上面的点都能看见另一条线段。 —————————————— 这题的思路很简单,首先根据左端点先排个序,然后找前一条线段的右端点和房子左端点连,后一条线段的左端点和房子右端点连,那么两条连线与路的...

weixin_34064653的博客 166

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

poj 2074 Line of Sight

http://poj.org/problem?id=2074 两条平行线段A,B,之间放有数条做为障碍物的线段,所有线段都平行,求B上能看到整个A的最长区间。 求出各个障碍物所对应的不能看到整个A的区间,如上图所示区间[a,b]和区间[c,d],剩下的区间即为可看到整个A的区间,求出最长的就可以了。 #include<stdio.h> #include<s...

weixin_30326745的博客 116

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

POJ 2074 直线相交

思路比较直接。 根据house的位置与每一个obstruction之间的相对位置,求出在line上不能够看到的区域Area的位置。 对所有的位置进行线性扫描,找出最长的通视距离,这个扫描过程需要细致。 最后还有几个致命的trick,自己动手吧,WA看dicuss中的测试数据.#include <iostream> #include <cstdio> #include <cmath> #incl

风城 436

poj2074Line of Sight(直线相交)

链接 几何细节题。 对于每一个障碍物可以求出它在地产线上的覆盖区间,如下图。 紫色部分即为每个障碍物所覆盖掉的区间,求出所有的,扫描一遍即可。 几个需要注意的地方:直线可能与地产线没有交点,可视区间可能包含地产线的端点,扫描的时候保留当前扫到的最大值。 代码中的数据很经典,供参考。 1 #include <iostream> 2 #include&lt...

weixin_30847939的博客 136

POJ 2074(直线交线段)

原题:Line of Sight 题意:站在一条线段property Line上,去看另一条线段home,有一些障碍物挡着视线,求pl最长连续区间可以看另一条线段home的全貌。 图示: 思路: 1.去除不符合条件的障碍物 2.把每条线段挡住的区间求出来,然后遍历一遍求最大区间即可。 代码: #include <cstdio> #include <iostre...

qq_40905284的博客 332

【贪心】线段覆盖

题目描述 Description     给定x轴上的N(0 输入描述 Input Description     输入第一行是一个整数N。接下来有N行,每行有二个空格隔开的整数,表示一条线段的二个端点的坐标。 输出描述 Output Description     输出第一行是一个整数表示最多剩下的线段数。 样例输入 Sam

OranGeC 8428

【面试题】一条直线上N个线段所覆盖的总长度

问题描述: 现有一直线,从原点到无穷大。 这条直线上有N个线段。线段可能相交。 问,N个线段总共覆盖了多长?(重复覆盖的地区只计算一次) ================================================ 解题思路: 可以将每个线段拆分成“单位1” 遍历所有线段,使用一个数组记录每个线段所走过的“单位1” 最后统计数组中被走过的中“单位1”的个数,即是

Life Coding 1万+

线段覆盖系列

线段覆盖1 给定x轴上的N(0 输入描述 Input Description     输入第一行是一个整数N。接下来有N行,每行有二个空格隔开的整数,表示一条线段的二个端点的坐标。 输出描述 Output Description     输出第一行是一个整数表示最多剩下的线段数。 样例输入 Sample Input 3 6  3 1  3 2  5 样例输出 Sample O

ZJUCSqxy的博客 5235

POJ2074Line of Sight【直线相交判定+求交点】

Language: Default Line of Sight Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 3895   Accepted: 1216 Description An architect is very proud of his new home

走一步再走一步 1643

POJ 2074 计算几何 障碍物与视线的问题

将house的右端点跟所有障碍物的左端点连接起来,之后延长交与property_line点x_left。 将将house的左端点跟所有障碍物的右端点连接起来,之后延长交与bleacher点x_right。 这样得到bleacher线上的left跟right点,从左到右扫描一次。 就可以算出答案了。

I will Do iT @ hlyblog.net 1526

POJ 2074

题目链接:http://poj.org/problem?id=2074 ———————————————————————————— 题目大意: 求property line上能看到房子全貌的最长段 ———————————————————————————— 题目思路: 先求出来每条障碍物线遮挡property line的线段,对线段的左端点进行排序。

相濡以沫的专栏 1048
上一篇: POJ 2007 Scrambled Polygon 极角排序
下一篇: POJ 1269 Intersecting Lines 判断直线相交
f_cpp
博客等级 码龄12年 0粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值