Counting Points

news/2025/3/13 16:08:45/文章来源:https://www.cnblogs.com/Xhita/p/18770165

原题链接

题目分析

题目要求计算在水平线(x轴)上,多个圆在各自覆盖区域内每个整数坐标点处的纵向覆盖点数之和。每个圆在某个x坐标点j处的纵向覆盖点数为2h + 1,其中h是满足h ≤ sqrt(r^2 - (x - j)^2)的最大整数。最终,对每个坐标点j取所有覆盖该点的圆中最大的纵向点数,并将所有j点的结果相加。

解题思路

  1. 遍历每个圆:对于每个圆,确定它在x轴上的覆盖范围[x - r, x + r]
  2. 计算纵向覆盖点数:对于每个覆盖的整数坐标j,计算该圆在此处的纵向覆盖点数,公式为2 * floor(sqrt(r^2 - (x - j)^2)) + 1
  3. 维护最大值:使用哈希表记录每个坐标点j处的最大纵向点数。
  4. 求和结果:遍历哈希表,将所有坐标点的最大值累加得到最终结果。

代码解析

void xhita() {ll n, m, sum = 0;cin >> n >> m;vector<ll> x(n), r(n);unordered_map<ll, ll> tk;// 输入圆心坐标x和半径rfcin(0, n, x);fcin(0, n, r);for (int i = 0; i < n; i++) {// 遍历该圆覆盖的所有x坐标jfor (int j = x[i] - r[i]; j <= x[i] + r[i]; j++) {// 计算纵向覆盖点数并更新最大值ll h = (ll)sqrt(1.0 * r[i] * r[i] - (x[i] - j) * (x[i] - j));tk[j] = max(tk[j], 2 * h + 1);}}// 累加所有坐标点的最大值for (auto c : tk) {sum += c.second;}cout << sum << endl;
}

示例说明

假设输入为:

2 0
1 3
2 2
  • 第一个圆圆心在1,半径2,覆盖x范围[-1, 3]。
  • 第二个圆圆心在3,半径2,覆盖x范围[1, 5]。

对于x=1:

  • 第一个圆的纵向点数:2*2 +1=5
  • 第二个圆的纵向点数:2*1 +1=3(距离为2,sqrt(4 - 4)=0)。
  • 最终取最大值5。

遍历所有x点并累加最大值即可得到最终结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/898219.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每美搭(1)

一、团队介绍 1.1 团队概况 1.1.1 博客展示链接 团队名:每美搭子们,组长博客链接 https://www.cnblogs.com/0623-k 1.1.2 团队项目描述 每美搭:每美搭是一款专注于服装搭配推荐的APP。它能精准获取用户个人基本体型、上传服装类型等多维度数据,结合地区天气、用户心情、服装…

嵌入向量计算示例

嵌入向量计算示例 1. 问题设定场景:电影推荐系统中用户对电影类型的偏好嵌入 输入特征:4种电影类型(动作片、喜剧片、科幻片、爱情片) 嵌入维度:n_e = 2 词汇大小:n_v = 42. 数据表示 (1)独热编码电影类型 独热编码向量动作片 [1, 0, 0, 0]喜剧片 [0, 1, 0, 0]科幻片 […

塔石串口服务器的工作模式有哪些

串口服务器通过支持多种工作模式,实现了串行接口与网络接口之间的数据透明传输,提供了灵活的网络通信解决方案。以下是串口服务器的几种常见工作模式:| TCP Server模式 在TCP Server模式下,串口服务器作为TCP服务器,等待客户端的连接请求。这种模式下,串口服务器会监听一…

【正点原子】全志T113-i开发板震撼上市!异核开发、工控设计方案!新品上市,限时低价!

【正点原子】全志T113-i开发板震撼上市!异核开发、工控设计方案!新品上市,限时低价!ATK-DLT113IS开发板是正点原子基于全志T113-i处理器而研发的一款用于嵌入式Linux领域的开发板,其拥有高性能、高可靠性、低成本和丰富的接口资源,适用于嵌入式系统开发!T113-i芯片框架 …

Stochastic Orders 理解和相关运算(_随时补充)

Recall数学里,用\(o\)和\(O\)表示the order the terms. \(a_n = o(1)\). \(a_n = O(1)\).Stochastic order notation 是一种用来表示随机变量序列概率收敛的速记方法。 \(O_p(1)\)依概率有界; \(o_p(1)\)依概率收敛到0. \(X_n= O_p(a_n)\Leftrightarrow \frac{X_n}{a_n} =O_p…

DCC控制器模型铁路-蓝牙版本

蓝牙版本: 该单元加上App提供了一个完整的DCC控制器,具有击败更昂贵系统的功能。物有所值,可靠,使用简单,定制系统,以匹配您的火车头花名册。 包括F1到F32功能按钮兼容最新的声音解码器 添加您自己的loco名称和函数标题。 -在Android设备(手机或平板电脑)上安装App 对于初…

jMeter的下载和安装

jMeter简介: JMeter 是一款由 Apache 软件基金会开发的开源性能测试工具,主要用于模拟高负载场景下的应用程序行为,帮助开发者评估系统的性能、稳定性和可靠性。 核心功能1. 协议支持广泛:支持 HTTP/HTTPS、FTP、JDBC、SOAP、REST、WebSocket 等多种协议,可对 Web 应用、A…

测试方法代码以及示例源码都已经上传至代码库,有兴趣的可以看看。

合集 - LeetCode 题集(10)1.LeetCode题集-1- 两数之和2024-08-312.LeetCode题集-2 - 两数相加2024-09-053.LeetCode题集-3 - 无重复字符的最长子串2024-09-094.4 - 寻找两个有序数组的中位数,图文并茂,六种解法,万字讲解2024-09-165.LeetCode题集-5 - 最长回文子串(一)202…

主从搭建innobackupex恢复从库报错Unable to open undo tablespace undologundo001

近日,用innobackupex重新搭建从库时报Unable to open undo tablespace undologundo001错误 下面是解决的过程: 启动从库时报错如下2025-01-16T14:43:16.367875+08:00 0 [ERROR] InnoDB: Unable to open undo tablespace undolog/undo001. 2025-01-16T14:43:16.367904+08:00 0…

DIY自动药丸分配器

经过三年的工作,我终于完成了我的自动给药机。我有时候很健忘。每次出门前,我都要提醒自己带上钱包、手机、钥匙和眼镜,通常至少要提醒五次。在大多数情况下,我已经建立了常规和流程来帮助我处理它,当然,除了我的日常补品(你知道,多种维生素,ω - 3,以及类似的东西)。…

Laravel11 从0开发 Swoole-Reverb 扩展包(五) - Laravel Echo 介绍

前情提要 上一节我们完整的梳理了整个通信过程,接下来我们需要来看前端的处理过程。 Laravel Echo Laravel Echo 是一个 JavaScript 库,它让您可以轻松订阅频道并监听服务器端广播驱动程序广播的事件。您可以通过 NPM 包管理器安装 Echo。在此示例中,我们还将安装 pusher-js…

远程——汇总篇(远程桌面、VNC、向日葵、ssh等)

关于远程的博客写了不少,这里汇总下,当个总目录。基本都需要外接物理显示器。 1、Windows远程 直接用下图方式,啥都不用装。Ubuntu22.04系统(其他版本未测)需开启远程桌面2、向日葵远程,需有网 Ubuntu安装amd64、arm64向日葵远程控制、及必要的设置 - 夕西行 - 博客园3、…