POJ 2932 Coneology(平面扫描)

K8S搭建(centos)完整版 每个人都有惰性,但不断学习是好好生活的根本,共勉! 阅读详情

题目链接:

http://poj.org/problem?id=2932

解题思路:

题目大意:

平面上有n个两两没有公共点的圆,i号圆的圆心在(x[i],y[i]),半径为r[i]。求所有最外层的,即不包含于其他圆内部的圆。

算法思想:

因为题目内的圆不存在相交的情况, 所以直接储存每个圆的左端点和右端点的x坐标,然后从左扫到右。我们在从左向右平移与y轴

平行的直线的同时,维护与扫面线相交的最外层的圆的集合。从左到右移动中,只有扫面线移动到圆的左右两端时,圆与扫描线的

相交关系才会发生变化,因此我们先将所有这样的x坐标枚举出来并排好序。如果满足是最外面的圆,就储存在set里面。如何判断

满足,就是对每一个x,如果是左端点的x坐标就来判断其对应的圆,是否是在set中储存的圆内,如果不是 ,就存到set中。如果是

右端点的x坐标,就pop出该圆。

AC代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;

const int N = 40005;
int n;
double x[N],y[N],r[N];

bool inside(int i, int j){
    double dx = x[i]-x[j];
    double dy = y[i]-y[j];
    return dx*dx+dy*dy <= r[j]*r[j];
}

void solve(){
    vector<pair<double,int> > events;//圆的左右两端的x坐标
    for(int i = 0; i < n; i++){
        events.push_back(make_pair(x[i]-r[i],i));//圆的左端
        events.push_back(make_pair(x[i]+r[i],i+n));//圆的右端
    }
    sort(events.begin(), events.end());
    //平面扫描
    set<pair<double, int> > outers;//与扫面线相交的最外层的圆的集合
    vector<int>ans;//最外层圆的列表
    for(int i = 0; i < events.size(); i++){
        int id = events[i].second % n;
        if(events[i].second < n){//扫描到左端
            set<pair<double, int> >::iterator it = outers.lower_bound(make_pair(y[id],id));
            if(it != outers.end() && inside(id, it->second)) continue;
            if(it != outers.begin() && inside(id, (--it)->second)) continue;
            ans.push_back(id);
            outers.insert(make_pair(y[id], id));
        }
        else{//扫描到右端
            outers.erase(make_pair(y[id], id));
        }
    }
    sort(ans.begin(), ans.end());

    int len = ans.size();
    printf("%d\n", len);
    for(int i = 0; i < len; i++){
        printf("%d%c",ans[i]+1,i+1 == len?'\n' : ' ');
    }
}

int main(){
    while(~scanf("%d",&n)){
        for(int i = 0; i < n; i++)
            scanf("%lf%lf%lf", &r[i],&x[i],&y[i]);
        solve();
    }
    return 0;
}

【stm32+K210项目】基于K210与STM32协同工作的智能垃圾分类系统设计与实现(完整工程资料源码) 本系统采用SG90舵机Maix Bit摄像头STM32C8T6主控板以及LX_TRIG_MP3_V6.0语音播报模块,构建了一套高效的智能垃圾分类系统,综合运用了图像识别、语音播报及精准控制技术。SG90舵机负责控制垃圾桶的开盖操作。该舵机通过接收PWM信号来实现转动,内部有一个基准电路产生周期为20ms的PWM信号,通过外部脉冲信号的控制(高电平时间在0.5ms至2.5ms之间),使得舵机的输出轴转动到指定位置。舵机内的位置反馈电位计。 阅读详情

相关推荐

从踩坑到填平:我在RHEL7上给Tesla A100装驱动的完整记录(含Fabric Manager配置)

本文详细记录了在RHEL7系统上为Tesla A100安装Nvidia驱动的完整过程,包括Fabric Manager配置的关键步骤。通过分析A100架构的特殊性,提供了从驱动安装到服务配置的详细指南,并分享了常见问题的排查方法和性能调优技巧,帮助用户高效部署高性能GPU计算环境。

weixin_29291863的博客 282

POJ2932 扫描线

#include <cstdlib> #include <cstdio> #include <iostream> #include <vector> #include <set> #include <algorithm>using namespace std;double x[400005]; double y[400005]; double r[400005];int n; int inside(

点羽染墨 565

Win11 24H2家庭版共享打印机失败?别慌,一个批处理脚本搞定所有设置

本文提供了Win11 24H2家庭版共享打印机失败的解决方案,通过一个批处理脚本自动修复所有设置问题。脚本包含安装组策略组件、修改关键注册表项等操作,帮助用户快速恢复打印机共享功能,适用于普通家庭用户。

weixin_30632089的博客 418

poj2932(几何扫描线)

/* translation: 给出n个两两不相交的圆,求出那些不被任何圆包含的圆的编号 solution: 平面几何扫描线 note: * 首先对每一个圆的水平方向的两个端点进行排序处理。然后用一条扫描线从左到右扫描。遇到圆的左端点 就判断是否被其它圆包含,如果是,加进set容器中(保存的全是没有被包含的圆)。遇到右端点,从容器 中删除 *

林伏案的博客 582

【无人机编队】基于matlab虚拟leader无人机编队仿真【含Matlab源码 3279期】

虚拟leader无人机编队仿真 完整代码,包运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 836

一文吃透 OData Deep Insert:从框架原理到 ABAP 实战

本文面向ABAP工程师,解析OData服务中的Deep Insert技术。文章首先阐述Deep Insert的业务背景,说明其适用于父子层级数据必须成组创建的场景(如销售订单与行项目)。随后深入框架实现机制,介绍SAP Gateway如何通过CREATE_DEEP_ENTITY方法处理嵌套请求,并强调开发者的责任边界。通过销售订单案例,文章对比了Deep Insert与$batch的适用场景差异,提供请求负载示例和DPC_EXT实现骨架代码。最后给出MPC_EXT声明深结构的三种套路,以及事务处理和错误处理

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 225

poj 2932 计算几何入门题 平面扫描

链接:http://poj.org/problem?id=2932 题意: 有n个圆,给定每个圆的圆心和半径,求所有最外层的,即不包含在其他圆内部的圆。 (任意两圆都没有公共点) 思路: 由于两两没有公共点,所以如果圆不在其他圆内部,那么这个圆的圆心就不可以在任何一个圆的内部。很直观的就O(n2)O(n^2)的算法。这肯定是过不了的,学习一个新的方法。平面扫描法。 平面扫描: 将扫描线

liujc_的专栏 821

反爬虫:POST 请求参数中 Sign 的加密机制详解,并设计带 Sign 校验的网站

本文介绍了API请求中sign签名的生成原理及实现方法。sign是通过对请求参数加密生成的一串字符串,用于验证请求合法性,防止参数篡改、重放攻击和伪造请求。其生成步骤包括参数排序、拼接字符串、加盐和哈希加密。文章还演示了如何在FastAPI后端实现带sign验证的新闻网站,包括参数校验、时间戳验证和签名比对等安全措施,有效提升API安全性,增加爬虫逆向难度。

数据知道的博客 4074

poj2932(计算几何平面扫描)

解题思路:其实就是把圆的左右两端记录下来,然后沿x轴从左到右进行扫描,扫到圆的左端点时,则判断其是否被其他圆包含,如果不被包含就加入set中维护,到碰到圆的右端点时,就从set中删除左端点。但做的时候调了一些时间,发现有个以前没注意到的语法问题。网上的版本都是用pair进行数据组合的,这样排序的时候就会默认先以first进行排,first一样时就按second的大小排序。而我用结构体,只按firs...

qq_39861441的博客 279

第12篇:TMC2240 CoolStep节能功能|软件配置+功耗测试(保姆级)

本文介绍了TMC2240驱动芯片的CoolStep节能功能,通过动态调节电机电流实现功耗优化。CoolStep利用StallGuard技术实时检测负载,自动调整运行电流,空载时可降低50%以上功耗。文章详细讲解了节能原理、寄存器配置方法和参数校准步骤,提供可直接复用的STM32代码。该功能特别适合电池供电设备,能显著延长续航时间,同时保持电机性能稳定。配置时需注意SG阈值、电流步长等关键参数,并可与静音模式叠加使用。

BackCatK Chen的博客 918

cadence中利用sva进行FPV实战(可直接使用)

在cadence中使用fpv进行formal验证

youzjuer的博客 749

poj2932 Coneology【扫描线+set】

题目大意:平面上N个两两没有公共点的圆,i号圆的半径为ri,圆心在(xi,yi),求所有在最外层,即不被包含在其他圆内部的圆 。解题思路:注意所给的圆都没有公共点。维护一个set,里面保存着和扫描线相交的圆,再用扫描线从左往右扫。如果扫到某圆的最左点,当它不被其他圆包含时,就把它加入到set中。如果扫到是某圆的最右点,并且该圆在数据结构中,就把这个圆删掉。怎么检查它有没有被其他圆包含呢?set里的圆

cdsszjj的博客 428

Python爬虫实战:实时爬取东方财富网股票行情

东方财富网实时行情(价格、涨跌幅、成交量等)K线图、分时图、技术指标市盈率、换手率、总市值等指标相比某些收费API,东方财富网页端接口不需要登录、免费、响应快、封装清晰,适合爬虫实践。东方财富网股票数据接口分析实时数据抓取与字段提取数据结构化处理自动化批量抓取多线程加速采集数据可视化展示支持存储为CSV/Excel/数据库。

2201_76125261的博客 1万+

POJ 2932 Coneology (平面扫描)

Coneology Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 3713   Accepted: 720 Description A student named Round Square loved to play with cones. He would ar

MADE_Y 2126

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

蓝牙模块HM-10手册

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

POJ2932Coneology(计算几何、平面扫描)

平面上有N NN个两两没有公共点的圆,i ii号圆的圆心在(xi,yi)(x_i,y_i)(xi​,yi​),半径为rir_iri​。求所有最外层的,即不包含与其他圆内部的圆。 解析: 利用垂直于x轴的线去从左往右扫描,观察点为圆的左右端点。因为圆是没有公共点的,这使得包含的判断变得简单。如果某个圆被包含那么一定是被最近的两个外圈的其中一个圆包含(y轴上),假设这个圆已经被包含,如果远的圆如果想包含这个圆必须把两个圆都包住,那么第一层包裹已经不再是外层。所以如果存在被包括在某个外层里,一定是被包裹在最近的.

繁凡さん的博客 525

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

POJ 2932 Coneology (平面扫描)

题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1775 详细题解:很好的一道计算几何题目,考的就是想法,想到了就很简单了…… 先算出每两个圆心间的距离,dis[i][j]表示第i和第j个圆心的距离 然后再以每条线段ij为边,求出以这样的线段为直线的左右两边的点的个数cnt和距离len[cnt],直线

忆梦 1178

pscad IEEE标准系统搭建说明

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

POJ-2932 Coneology[平面扫描]

Coneology Time Limit: 5000MS Description A student named Round Square loved to play with cones. He would arrange cones with different base radii arbitrarily on the floor and would admire the intr...

weixin_33980459的博客 117

POJ 2932 Coneology(平面扫描/计算最外层圆个数)

题目链接: POJ 2932 Coneology 题意: 平面上有n个两两没有公共点的圆,i号圆的圆心在(xi,yi),半径为ri,编号从1开始。求所有最外层的,即不包含于其他圆内部的圆。输出符合要求的圆的个数和编号。n<=40000. 分析: 由于有任意两圆都没有公共点这一条件,要判断一个圆是否在其他圆内部,只要判断其圆心是否在其他圆内即可。这样判断每个圆是否是最外层的复杂度为O(N)

ramay7 932

poj 2932 Coneology(平面扫描)

题意:给定n个圆,求有多少个园

Baoli1008的专栏 803

POJ 2932-Coneology(平面扫描-最外层的圆)

Coneology Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 3827   Accepted: 760 Description A student named Round Square loved to play with cones. He would

Some. 709

TTTTTTTTTTTTTTT poj 2932 Coneology 平面扫描+STL

题目链接 题意:有n个圆,圆之间不存在相交关系,求有几个不被其他任何圆包含的圆,并输出圆的编号; #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> #include <vector...

weixin_30407099的博客 175

Coneology POJ - 2932(平面扫描+二叉搜索树)

传送门 题意:平面上有N个两两都没有公共点的圆,i号圆的圆心在(xi,yi),半径为ri。求所有最外层的,即不包含于其他圆内部的圆。 题解: 附上代码: #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;vector&gt; #include&lt;set&gt; #include&lt;algorithm&gt; ...

肘子的博客 407

POJ-2932 Coneology 圆的扫描线

POJ-2932题目链接:传送门 Description A student named Round Square loved to play with cones. He would arrange cones with different base radii arbitrarily on the floor and would admire the intrinsic beauty of the arrangement. The student even began theorizing about

hrdate(菜菜菜带带带) 221

[扫描线]POJ2932 Coneology

题意:有n个圆 依次给了半径和圆心坐标 保证输入的圆不相交(只有 相离 和 内含/外含 的情况)   问 有几个圆 不内含在其他圆中,并分别列出这几个圆的编号(1~n)     (n的范围是[1, 40000]) 案例画出来大概是这样的 (那个原点为(50,50)的太远了,就意思一下) 所以答案是3号圆和5号圆 不被包含 好了,若这道题n只有1000,那...

aicheng4794的博客 194

poj 2932 Coneology

依然是圆有关的扫描线.感觉额.上一篇说得自己都看不太懂的样子. 这个题目吧。是要问你有哪个圆没有被其他的圆覆盖住.说白了就是他的被覆盖层数为0.和上一篇的题相比.简单了点。 同样的.没有相交的圆.. 啊.直接说做法.加入set的集合的元素是.额.是不相互包含的圆.也就是说两两关系是相离.那么一个圆只要和它上下两圆无关系,自然也不会和这之外的圆有关系了. 然后这里判断一个圆的上下,就没有那么

ch2010091的专栏 1181

POJ 2932 Coneology(扫描线)

【题目链接】http://poj.org/problem?id=2932 【题目大意】   给出N个两两没有公共点的圆,求所有不包含于其它圆内部的圆 【题解】   我们计算出所有点在圆心所有y位置的x值,   由于两两没有公共点,所以当我们对所有的x坐标进行扫描时,只要扫描相邻的x,   判定扫描到的圆和与其x相邻的圆是否是圆包含关系就可以判断一个圆的位置 ...

weixin_30820151的博客 156
上一篇: POJ 1273 Drainage Ditches(最大流模板)
下一篇: hihoCoder 1227 The Cats' Feeding Spots && ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛
yphacker
博客等级 码龄12年 199粉丝 540原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值