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 ...
随机推荐
- go sync.map的使用
前言 数据竞争是并发情况下,存在多线程/协程读写相同数据的情况,必须存在至少一方写.另外,全是读的情况下是不存在数据竞争的. Go语言中的 map 在并发情况下,只读是线程安全的,同时读写是线程不安全 ...
- C#实现自己的Json解析器(LALR(1)+miniDFA)
C#实现自己的Json解析器(LALR(1)+miniDFA) Json是一个用处广泛.文法简单的数据格式.本文介绍如何用bitParser(拥有自己的解析器(C#实现LALR(1)语法解析器和min ...
- mysql-installer-community-8.0.19.0.msi 的自定义安装与卸载
一.双击运行安装包执行安装 1.选择Custom,该种方式可以设置安装位置,仅安装所需的组件,点击Next 2.选择需要的组件,点击Advanced Options 3.设置安装位置,点击OK 4.点 ...
- PIO----创建Excel表格复杂使用
导出 @RequestMapping( name = "下载模板附件实现Model", value = {"/uploadFileModel"}, method ...
- Zotero设置
1. 说明 Zotero 中文社区 | 百度网盘 使用 zotero 仅同步题录信息,使用其他云同步程序同步文献的附件,此处以坚果云为例进行演示,前期的坚果云同步设置参考文章:Zotero坚果云同步. ...
- swich语句
1.switch语句格式 括号内的是待匹配内容,然后case后的是被匹配内容,如果括号内的内容与case后的内容一致,则会打印语句体 . 2.实操(后面的省略了) 3.注意事项 1.case后面的值不 ...
- 【JDBC第9章】Apache-DBUtils实现CRUD操作
第9章:Apache-DBUtils实现CRUD操作 9.1 Apache-DBUtils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的 ...
- 剖析 Docker Swarm 操作对容器端口影响
剖析 Docker Swarm 操作对容器端口影响 一.背景阐述 在使用 Docker Swarm 构建集群环境过程中,于 ts3 节点出现了原有的容器端口全部失效,手动重启后才恢复的情况.期间涉及 ...
- AI提示词:通用 vscode linux c++ 项目CMakeLists和bulid模板
AI提示词 写vscode linux c++20 的CMakeLists.txt文件.build.rebuild文件 这是多项目结构,目录结构如下: projs: │ build.sh 顶层buil ...
- web自动化:webdriver常用api
一.获取操作 1.get('url'):访问指定的url webdriver.get(String url); 2.Getcurrenturl():获取当前页面url webDriver.getCur ...