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 ...
随机推荐
- 【ABAQUS 二次开发笔记】读入TXT分析结果&输出csv文件
abaqus分析之后,很多结果可以输出dat,msg,sta等文件中.可以用记事本.notpad++.editplus等软件打开编辑. 但是往往无法直接用excel.origin等软件打开,比如对结构 ...
- 【P0】Logisim部件级实验/有限状态机
课上 过得十分狼狈.经鉴定孩子可能脑子拗 T1 投票决议 组内投票,赞成>反对,则通过:组长拥有一票否决权. 信号名 方向 描述 [1:0] s Input 2'b00 赞成2'b01 反对2' ...
- Qt设置QTextEdit的行高
Qt设置QTextEdit的行高 解决方法: QTextDocument* doc = ui->edtCountryIntroduce->document(); for(QTextBloc ...
- 扩展知识:vscode配置easyx
扩展知识:vscode配置easyx 前言 因为个人用习惯了vscode,对于visual studio的操作只能说相当程度上很不适应,因此,我打算经历一番配置,让vscode可以配置上easyx ...
- [I.2]个人作业:软件案例分析
项目 内容 这个作业属于哪个课程 2025春季软件工程(罗杰.任健) 这个作业的要求在哪里 [I.2]个人作业:软件案例分析 我在这个课程的目标是 在PSP中精进个人代码技术,在TSP中提高团队合作凝 ...
- Nginx: stat() failed (13: permission denied)
解决 server { listen [::]:80 default_server; # SSL configuration # # listen 443 ssl default_server; # ...
- Error: Address already in use
端口被某个进程占用 使用命令 lsof -i:端口号 然后看到进程号,直接杀掉进程就好 kill -9 进程号
- Ansible忽略任务失败
在默认情况下,任务失败时会中止剧本任务,不过可以通过忽略失败的任务来覆盖此类行为.在可能出错且不影响全局的段中使用ignore_errors关键词来达到目的. 环境: 受控主机清单文件: [dev] ...
- 数据、信息、知识、智慧:AI时代我们该如何思考?
时代的浪潮滚滚向前,AI技术的演进正悄然改变着我们认知世界和创造价值的方式.从数据.信息到知识.智慧,从大数据到大模型,从单一智能体到多智能体协作,这是一场深刻的认知革命,也是生产力解放的新纪元. A ...
- nginx下增加https端口的方法
一.进入根目录我是使用xshell进行远程连接服务器的,连接到服务器首先输入cd /进入到根目录在这里插入图片描述二.配置nginx.conf文件首先输入cd etc/nginx进入到nginx目录在 ...