Codeforces Round #573 (Div. 1)

E

题意:二维平面上有 n 个点,你可以放至多 m 条直线使得 (0,0) 与每个点的连线至少与一条直线相交。求原点与所有直线的距离最小值最大是多少。 \(n,m \le 2*10^5,-10^5\le x_i, y_i \le 10^5\)

key:二分,贪心

二分答案,此时可以以原点画圆,那么每条直线都可以与该圆相切。每个点与该圆的两切点形成一个区间。问题变成对于 n 个环形区间,用至多 m 个点去覆盖使得每个区间都被覆盖,问是否可行。

考虑序列:经典问题。首先要把包含关系去掉,之后按左端点排序,每次贪心地选右端点,直到该区间没有被覆盖时选下一个点。

去掉包含关系:先按左端点排序,相等则按右端点。此时倒着扫,按右端点严格递减的顺序选择区间。此时的包含关系只有可能是左端点相同,但这并不影响贪心策略的正确性。

回到原题。首先看如何处理环形区间:储存时要保证左端点<右端点(越界不管),然后复制二倍,然后去除包含关系。之后再把每个区间的第一份拿出来,再复制二倍。

之后可以用双指针贪心地找到:如果选择了当前区间的右端点,那么下一个没有被覆盖的区间的标号。

用倍增可以得到后 \(2^k\) 个区间的标号。

然后枚举左端点,考虑以它为开头跳 m 步是否覆盖完即可。总复杂度 \(O(Dn \log m)\) ,D是二分次数。

Codeforces Round #573 (Div. 1) 差F的更多相关文章

  1. Codeforces Round #572 (Div. 1) 差E

    Codeforces Round #572 (Div. 1) A2 题意:给一棵树,带边权,互不相同且为偶数.每次操作是选两个叶子然后在路径上同时加一个数.初始边权全是0,求一个操作序列使得最终边权与 ...

  2. Codeforces Round 573 (Div.1) 题解

    这场怎么说呢……有喜有悲吧. 开场先秒了 A.看到 B,感觉有点意思,WA 了 2 发后也过了. 此时还在 rk 前 200. 开 C,一看就不可做.跟榜,切 D 人数是 C 的两倍. 开 D.一眼感 ...

  3. Codeforces Round #346 (Div. 2) E F

    因为很久没有个人认真做题了 昨天晚上开了场虚拟cf来锻炼个人手速 选的是第一次做cf的场 那时候7出3还被hack...之后也没补题 这次做的时候顺便回忆了一下以前比赛的时候是怎么想的 发现经验还是很 ...

  4. Codeforces Round #541 (Div. 2) (A~F)

    目录 Codeforces 1131 A.Sea Battle B.Draw! C.Birthday D.Gourmet choice(拓扑排序) E.String Multiplication(思路 ...

  5. Codeforces Round #532 (Div. 2):F. Ivan and Burgers(贪心+异或基)

    F. Ivan and Burgers 题目链接:https://codeforces.com/contest/1100/problem/F 题意: 给出n个数,然后有多个询问,每次回答询问所给出的区 ...

  6. Codeforces Round #573 (Div. 1)

    Preface 军训终于结束了回来补一补之前的坑发现很多题目题意都忘记了 这场感觉难度适中,F由于智力不够所以弃了,E的话石乐志看了官方英文题解才发现自己已经胡了一大半就差实现了233 水平下降严重. ...

  7. Codeforces Round #600 (Div. 2)E F

    题:https://codeforces.com/contest/1253/problem/E 题意:给定n个信号源,俩个参数x和s,x代表这个信号源的位置,s代表这个信号源的波及长度,即这个信号源可 ...

  8. Codeforces Round #322 (Div. 2) E F

    E. Kojiro and Furrari 题意说的是 在一条直线上 有n个加油站, 每加一单位体积的汽油 可以走1km 然后每个加油站只有一种类型的汽油,汽油的种类有3种 求从起点出发到达终点要求使 ...

  9. Codeforces Round #506 (Div. 3) 1029 F. Multicolored Markers

    CF-1029F 题意: a,b个小正方形构造一个矩形,大小为(a+b),并且要求其中要么a个小正方形是矩形,要么b个小正方形是矩形. 思路: 之前在想要分a,b是否为奇数讨论,后来发现根本不需要.只 ...

随机推荐

  1. Windows系统JDK环境变量配置

    一.环境准备 Windows10 jdk1.8.0_144 二.下载并安装JDK 下载 密码: r5ym 三.环境变量配置 首先,打开控制面板>系统和安全>系统,点击高级系统设置进入系统属 ...

  2. Linux 压缩解压操作

    Linux 压缩解压操作 Linux解压文件到指定目录 tar在Linux上是常用的打包.压缩.加压缩工具,他的参数很多,折里仅仅列举常用的压缩与解压缩参数 参数:-c :create 建立压缩档案的 ...

  3. mini2440 裸机程序下载到 sdram 不能运行。

    今天在 写了个简单的 led 的汇编程序,下载到 mini2440 的 nand flash 里面可以正常运行,但是下载到 sdram 里面不能运行. 后来发现有几个注意点, 要在 sdram 中运行 ...

  4. delphi save .dfm to .txt

    procedure TForm2.saveDfm; var inStream,outStream:TMemoryStream; begin inStream:=TMemoryStream.Create ...

  5. maven解决大项目打包慢的问题

    裁剪反应堆 -am, --also-make 同时构建所列模块的依赖模块.必须和-pl同时使用.如 mvn -pl test  install -am ,将同时构建test的依赖模块. -amd, - ...

  6. idea使用eclipse风格

    说明,只是代码编辑区采用eclipse风格,其他用的是idea的IntelliJ(白色风格) 1.下载文件 2.配置

  7. css清除select的下拉箭头样式

    <!DOCTYPE html><html>    <head>        <meta charset="UTF-8">      ...

  8. FPGA的基本组成单元LUT,以及三种核的概念

    .查找表 LUT就是查找表,对于4输入的LUT而言,实际上就是4位地址位,一位数据位的存储器,能够存储16位数据,所以我们在FPGA设计中可以用LUT组建分布式的RAM. 这样也可以解释我们在设计中为 ...

  9. springboot+mybatis+通用mapper+多数据源(转载)

    1.数据库准备 数据库表我们在springboot-mybatis数据之外,新建数据库springboot-mybatis2: springboot-mybatis数据库中有t_class表: spr ...

  10. Python 安装zbar-py时出现 无法打开包括文件: “unistd.h” no such file or directory

    问题 途中使用的命令是cl.exe,在执行命令的时候找不到对应的unistd.h文件. unistd.h是Unix系统的文件,因此,十有八九,使用的是Windows系统.下面的代码可以修复,但是如果修 ...