【题解】洛谷 P9658 Laser Trap

news/2024/10/17 22:16:14/

题解-P9658 Laser Trap

题目传送门

题意简述

题面是英文的,还没翻译,就讲一讲吧。

n n n 个激光发射器,两两之间产生激光束,将平面分为若干区域。

问至少删去多少个发射器,可以使得原点与外侧区域联通。

多组数据,数据范围: n ≤ 1 0 6 n\le10^6 n106 ∑ n ≤ 1 0 6 \sum n\le10^6 n106


Solution \textit{Solution} Solution

前置知识
  • 叉积
  • 极角排序
  • 化环为链
  • 双指针
具体解法
  1. 将发射器围成的环化环为链
  2. 将发射器进行极角排序
  3. 使用双指针算法找最小删除量,每次得到两个指针就更新答案

瓶颈在于极角排序,达到 O ( n log ⁡ n ) O(n\log n) O(nlogn) 的复杂度,能通过本题。

  • 注意化环为链时开两倍数组

AC code

洛谷评测机: 712 m s / 808.00 K B 712ms/808.00KB 712ms/808.00KB

核心代码:

if (n<3){//特判,若n<3,易证明不需要删除cout<<0<<'\n';continue;
}
sort(a+1,a+n+1);//极角排序
for (int i=1;i<=n;i++)//化环为链a[i+n]=a[i];
for (int i=1,cnt=1;i<=n;i++){//双指针while (cnt+1<n+i&&s(a[i],a[cnt+1])>=0)cnt++;ans=min({ans,cnt-i+1,n-cnt+i-1});//更新答案
}

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

相关文章

C#值类型设置为null

Nullable<DateTime> date null; 赋默认值防止报错&#xff1a; DateTime ? date new DateTime(3000,1,1); DateTime date2 new date.GetValueOrDefault();

精彩回顾|从架构到实践,AntDB融合型数据库揭秘

当今社会中的信息除了“多”&#xff0c;人们对于“效率”和“速度”的要求也越来越高。譬如&#xff0c;对于很多企业决策者来说&#xff0c;在当前的经济形势下需要尽一切可能降本增效。过去每周看看经营报表的习惯&#xff0c;现在慢慢转变为实时可视化分析企业当前的经营状…

Unity3d 导入中文字体转TMPtext asset

外部字体放入unity仓库以后呢&#xff0c;需要把这个字体转成用立体的字体文件才可以被使用&#xff01; 要想转换的话呢先放入仓库对字体点右键上面有一个Create创建里面有一个TEXT Asset&#xff0c;创建好就可以使用了

RT-DETR优化改进:轻量级Backbone改进 | VanillaNet极简神经网络模型 | 华为诺亚2023

🚀🚀🚀本文改进:一种极简的神经网络模型 VanillaNet,支持vanillanet_5, vanillanet_6, vanillanet_7, vanillanet_8, vanillanet_9, vanillanet_10, vanillanet_11等版本,相对于自带的rtdetr-l、rtdetr-x参数量如下: layersparametersgradientsvanillanet_5338277174…

Python爬虫批量下载图片

一、思路&#xff1a; 1. 分析URL&#xff0c;图片的URL内嵌于base_url的返回当中 2. 下载图片 二、代码 import time import requests import os from lxml import etreeclass DownloadImg():爬虫进行美女图片下载def __init__(self):self.url http://xxxxxx/4kmeinv/self…

image is being used by stopped container 7d2ff8620f3b 删除镜像失败怎么办

这个错误信息表明&#xff0c;镜像 55860ee0cd73 正被一个已停止的容器 7d2ff8620f3b 使用&#xff0c;因此无法正常删除。要解决这个问题&#xff0c;你有两个选择&#xff1a; 删除使用该镜像的容器&#xff1a;首先删除引用该镜像的容器&#xff0c;然后再删除镜像。这可以通…

python接口自动化-参数关联

前言 我们用自动化发帖之后&#xff0c;要想接着对这篇帖子操作&#xff0c;那就需要用参数关联了&#xff0c;发帖之后会有一个帖子的id&#xff0c;获取到这个id&#xff0c;继续操作传这个帖子id就可以了 &#xff08;博客园的登录机制已经变了&#xff0c;不能用账号和密…