2021NOI 省选训练赛day2T1 A. 黑白沙漠
2021NOI 省选训练赛day2T1 A. 黑白沙漠
Problem
在一条长度有限的数轴 \([L,R]\) 上,有 \(N\) 栋建筑物。其中第 \(i\) 栋建筑物的坐标为 \(x_i\) ,能够在风中坚持 \(y_i\) 个单位时间。
初始时区间 \([L,R]\) 是无风的,之后无风的区间在每个单位时间内会缩小1单位长度,直至缩小成了一个在 \([L,R]\) 中等概率生成的实数点 \(M\) 处。无风的区间端点位置是关于时间线性的,即在任意时刻, \(\frac{M-L}{R-M}\) 不变。
求对于每一个建筑物最后一个倒下的概率 \(p_i\)。
精度要求: \(eps\le 10^{-9}\) .
\(1\le N\le2\times10^5,-10^6\le L <x_i<R\le 10^6,0\le y_i \le10^6\).
保证 \(x_i\) 互不相同,且对于 \(1\le i<N\) 均有 \(x_i<x_{i+1}\).
Solution
先不考虑随机点 \(M\) 。假如已经确定了点 \(M\) ,如何找到存活到最后的建筑物?
如果建筑物 \(i\) 在无风区中度过了 \(b_i\) 个单位时间,那么倒塌时间为 \(b_i+y_i\) 。这个值最大的建筑物就是答案。当无风区随着时间收缩时, \(b_i\) 可以用折线 \((L,0),(M,R-L),(R,0)\) 来表示。则\(x_i\)处的折线高度即为 \(b_i\) 。(当然也可以用代数计算得出,无伤大雅)
接着,分别考虑 \(M\) 左右两侧的 \(b_i+y_i\) 的最大值。
当 \(M\) 从左到右移动时,考虑 \(M\) 左侧的 \(b_i+y_i\) 的最大值,可以发现对于左侧的两个建筑 \(i,j(x_i<x_j<M)\) ,一旦 \(b_i+y_i>b_j+y_j\) ,则 \(i\) 将永远优于 \(j\) , \(j\) 就永远不会成为答案,直接将 \(j\) 删去即可;从右向左移动时同理。这样我们就将 \([L,R]\) 分为了 \(O(n)\) 个区间,当 \(M\) 在每个区间中,其左右两侧的 \(b_i+y_i\) 的最大值均不变。
那么我们只要分别处理每个区间即可。可以用二分(\(O(\log n)\))或解二次方程(\(O(1)\))的方式找到最大值在左/右的分界点。
实数的二分可以考虑直接设定二分次数,以免因为进度问题死循环。
2021NOI 省选训练赛day2T1 A. 黑白沙漠的更多相关文章
- 省选训练赛第4场D题(多米诺骨牌)
题目来自FZU2163 多米诺骨牌 Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description Vasya很喜欢排多米诺 ...
- 7.30 正睿暑期集训营 A班训练赛
目录 2018.7.30 正睿暑期集训营 A班训练赛 T1 A.蔡老板分果子(Hash) T2 B.蔡老板送外卖(并查集 最小生成树) T3 C.蔡老板学数学(DP NTT) 考试代码 T2 T3 2 ...
- 10.0.0.55_12-16训练赛部分writeup
0x1 - MISC MISC100 一张帅行的照片 目测是图片隐写,但是binwalk并没有出来,应该是对文件头进行了修改 010editor查看一下,发现在jpg文件尾之后还有大量的数据 而且在灰 ...
- Contest1592 - 2018-2019赛季多校联合新生训练赛第二场(部分题解)
Contest1592 - 2018-2019赛季多校联合新生训练赛第二场 D 10248 修建高楼(模拟优化) H 10252 组装玩具(贪心+二分) D 传送门 题干 题目描述 C 市有一条东西走 ...
- Contest1585 - 2018-2019赛季多校联合新生训练赛第一场(部分题解)
Contest1585 - 2018-2019赛季多校联合新生训练赛第一场 C 10187 查找特定的合数 D 10188 传话游戏 H 10192 扫雷游戏 C 传送门 题干: 题目描述 自然数中除 ...
- 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解
今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...
- HDU6578 2019HDU多校训练赛第一场 1001 (dp)
HDU6578 2019HDU多校训练赛第一场 1001 (dp) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6578 题意: 你有n个空需要去填,有 ...
- HDU6579 2019HDU多校训练赛第一场1002 (线性基)
HDU6579 2019HDU多校训练赛第一场1002 (线性基) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6579 题意: 两种操作 1.在序列末 ...
- ACM训练赛:第20次
这次的题思维都很强,等之后的考试结束会集中精力重新训练一些思维题. A - A simple question CodeForces - 520B 思路: 直接看的话,很容易发现如果 \(n > ...
- SCNU省选校赛第二场B题题解
今晚的校赛又告一段落啦,终于"开斋"了! AC了两题,还算是满意的,英语还是硬伤. 来看题目吧! B. Array time limit per test 2 seconds me ...
随机推荐
- windows nvm 切换node版本后,npm找不到
前言 在 windows 使用 nvm,管理 node 版本时,nvm install 14.21.3 后,发现在指定 node 版本的 node_modules 文件夹中没有对应的 npm 包,这时 ...
- stat() "/root/xxx/index.html" failed (13: Permission denied)
前言 在 nginx 上部署静态网页报502,于是查看 nginx 错误日志 error_log /var/log/nginx/error.log;,却没有看到任何错误信息:访问 nginx活动日志 ...
- go 数组或切片转为字符串
数组转字符串 将 var slice = []int{1, 2, 3, 4},转为 [1,2,3,4] 可以使用 json.Marshal(),这是因为 json 包,会将数组和切片值编码为JSON数 ...
- linux curl 测试 websocket 服务
如下 curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: ec ...
- Docker Hub 镜像加速器——持续更新(2025年3月12日)
国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器.Docker 官方和国内很多云服务商都提供了国内加速器服务. 配置加速地址 Ubuntu 16.04+.Debian 8+ ...
- Docker Swarm多节点环境的搭建(二): Docker的集群调配
Docker的集群调配在上篇文章中介绍了如何如何在多个CentOS中安装Docker应用.本文章为大家介绍如何实现对已安装的这一堆机器实现集群化.Docker Swarm运行Spring Cloud应 ...
- 【Guava工具类】Strings&Ints
String相关工具 Strings Guava 提供了一系列用于字符串处理的工具: 对字符串为null或空的处理 nullToEmpty(@Nullable String string):如果非空, ...
- BUUCTF---Cipher1(playfair)
playfair Playfair密码原理以及该题解题步骤 Playfair密码(Playfair cipher 或 Playfair square)一种替换密码,1854年由查尔斯·惠斯通(Char ...
- 简单实现Android的本地文件读写,暨将List数据保存到Json文件中并读出
一.让我们从引入依赖开始 //将这两行代码添加到以上位置,其他的一般不用管 implementation 'com.google.code.gson:gson:2.8.5' implementatio ...
- 【Python】导出docx格式Word文档中的文本、图片和附件等
[Python]导出docx格式Word文档中的文本.图片和附件等 零.需求 为批量批改学生在机房提交的实验报告,我需要对所有的实验文档内容进行处理.需要批量提取Word文档中的图片和附件以便进一步检 ...