题意

场地外,小力组织了一个套玩具的游戏。所有的玩具摆在平地上,toys[i] 以 [xi,yi,ri] 的形式记录了第 i 个玩具的坐标 (xi,yi) 和半径 ri。小扣试玩了一下,他扔了若干个半径均为 r 的圈,circles[j] 记录了第 j 个圈的坐标 (xj,yj)。套圈的规则如下:

若一个玩具被某个圈完整覆盖了(即玩具的任意部分均在圈内或者圈上),则该玩具被套中。
若一个玩具被多个圈同时套中,最终仅计算为套中一个玩具
请帮助小扣计算,他成功套中了多少玩具。

注意:

输入数据保证任意两个玩具的圆心不会重合,但玩具之间可能存在重叠。
示例 1:

输入:toys = [[3,3,1],[3,2,1]], circles = [[4,3]], r = 2

输出:1

解释: 如图所示,仅套中一个玩具

示例 2:

输入:toys = [[1,3,2],[4,3,1],[7,1,2]], circles = [[1,0],[3,3]], r = 4

输出:2

解释: 如图所示,套中两个玩具

提示:

1 <= toys.length <= 10^4
0 <= toys[i][0], toys[i][1] <= 10^9
1 <= circles.length <= 10^4
0 <= circles[i][0], circles[i][1] <= 10^9
1 <= toys[i][2], r <= 10

一看数据范围1e4,突然感觉暴力行了,最后发现过不去,其实优化的思路十分的简单。

class Solution {public:int circleGame(vector<vector<int>>& toys, vector<vector<int>>& cir, int r) {set<pair<int,int>> mh;//将圈的信息存下for (auto &x:cir)mh.insert(make_pair(x[0],x[1]));int res = 0;for (auto &m:toys){int x = m[0],y = m[1],rr = m[2];if (rr>r) continue;int k = r - rr;bool f = false;for (int dx = -k;dx<=k && !f;dx++)for (int dy = -k;dy<=k && !f;dy++){if (dx * dx + dy * dy >k*k) continue;if (mh.count(make_pair(x+dx,y+dy)))f = true;}res+=f;}return res;}
};

题目链接+++++++++++++++++++++++++++++++++++++

力扣 LCP 42. 玩具套圈 (数学公式反推)相关推荐

  1. 力扣杯2021秋季编程大赛第四题 LCP 42. 玩具套圈

    原题链接:LCP 42. 玩具套圈 思路 记toy的坐标xt, yt, 半径t ring的坐标xr, yr 满足条件的toy (xt - xr)^2 + (yt - yr)^2 <= (t - ...

  2. leetcode - LCP 42. 玩具套圈 -二分 -坐标映射 -区间查找 - 坐标范围快速查找

    文章目录 解法1 - 给定圈,找套中的玩具 - 超时 解法 2 - 给定玩具找能套中它的圈 - 超时 解法 3 解法2的基础上加入 二分查找区间 - 通过 解法4 - 解法2的基础上 映射x的同时映射 ...

  3. 20210119:力扣第42周双周赛(下)

    力扣第42周双周赛(下) 题目 思路与算法 代码实现 写在最后 题目 修改后的最大二进制字符串 得到连续 K 个 1 的最少相邻交换次数 思路与算法 修改后的最大二进制字符串 这道题的思路很简单,交换 ...

  4. 20210101:力扣第42周双周赛(上)

    力扣第42周双周赛(上) 题目 思路与算法 代码实现 写在最后 题目 无法吃午餐的学生数量 平均等待时间 思路与算法 无法吃午餐的学生数量 本题直接暴力模拟也没问题,但是这应该不是题目的本意,我们可以 ...

  5. 力扣——LCP 37. 最小矩形面积(困难)

    刚看到本题时感觉难度不是很大,却出现在困难组里面.后面万万没想到提交测试的时候输入了将近20000条直线进行判断,如果直接上来就做的话,那肯定会: 接下来看题目: 题目 python代码 刚开始我的代 ...

  6. LeetCode 2021 力扣杯全国秋季编程大赛(第384名)

    文章目录 1. 无人机方阵 2. 心算挑战 3. 黑白翻转棋 4. 玩具套圈 5. 十字路口的交通 2021.9.11,周六 比赛之前:早上去交大看看,本科毕业10年了,由于限流,校园里没有多少回校的 ...

  7. 力扣第三题java_LeetCode 题解 | 力扣杯 LCP 06. 拿硬币

    力扣杯 LCP 06. 拿硬币(点击查看题目) 力扣​leetcode-cn.com 题目描述 桌上有 n 堆力扣币,每堆的数量保存在数组 coins 中.我们每次可以选择任意一堆,拿走其中的一枚或者 ...

  8. 力扣 547. 朋友圈 c语言 三种解法 深搜 广搜 并查集。

    题目: 并查集: /*力扣 547 朋友圈 并查集 c语言 2020/12/14 1:04 by ksks14*/ /*初始化 查找 合并*/ #define maxsize 10000 int fl ...

  9. 力扣——42.接雨水(困难难度)——条条大路通罗马

    力扣--42.接雨水 一.算法目录合集 1.地址 2.说明 二.题目说明 1.题干 2.原地址 三.实现步骤 1.思路分析 1.1.分析问题 1.2.转化问题 1.3.简化问题 1.4.具体步骤 ① ...

最新文章

  1. 李开复:谈谈那些你不知道的人工智能!
  2. R语言实战应用精讲50篇(十四)-R语言构建层次分析模型
  3. 牛客网《BAT面试算法精品课》学习笔记
  4. 本周有哪些值得读的 AI 论文?我们替你挑选了 18 篇
  5. java new class 直接调用_java中创建对象的的两种方式具体解释,一个是new一个是调用Class类的newinstance方法?...
  6. 地球上最快的速度......
  7. 对动画教程的坐标反转公式求证
  8. ansys怎么使用anand模型_当SpaceClaim 遇上ANSYS
  9. 情人节民宿预定量同比增200% 北京建国门最火
  10. 2021 年 Java 开发者生产力报告
  11. OpenAI新研究:通过非监督学习提升NLP任务表现
  12. Settings点击Location(位置)后右上角的开关button不会消失
  13. EasyPR--中文车牌识别系统 开发详解(开源)
  14. 统计学中常见的分布汇总及相关概念
  15. MVC5 + EF6 + Bootstrap3 (11) 排序、搜索、分页
  16. 一分钟了解TCP/IP网络通信协议
  17. 计算机实训学校目的和要求,计算机实习目的和要求
  18. java blazeds,java web开发学习-8 BlazeDS
  19. ASP运行环境--.NetBox 软件使用方法,怎样使用.NETBOX运行asp项目?
  20. 基于STM32F103将采集的温度-湿度值通过串口输出,用OLED屏显示自己的学号和姓名以及显示AHT20的温度和湿度,滑动显示长字符

热门文章

  1. 工业相机参数之帧率相关知识详解:
  2. Python课程第二天作业
  3. 360FLEX与会者的演讲资源链接
  4. html给文字添加下划线
  5. 爬虫学习笔记(六)——Scrapy框架(一):安装、运行流程及简单使用
  6. Linux系统管理员之日志管理
  7. 用 OpenCV 检测图像中各物体大小
  8. Shopee使用虚拟信用卡绑卡测试购物教程
  9. HTML5+CSS3小实例:有趣的沙漏加载动画
  10. 涂鸦,Canvas绘图