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 ...
随机推荐
- 【Python】一键提取inp文件结构的脚本
inp=input("输入文件路径:") # print(type(inp)) ex_txt=inp+'-Struct.inp' inp=inp+'.inp' import re ...
- Windows编程----线程管理
系统中,进程主要有两部分组成:进程内核对象和进程地址空间.操作系统通过进程内核对象来管理进程,进程地址空间用于维护进程所需的资源:如代码.全局变量.资源文件等. 那么线程也是有两部分组成:线程内核对象 ...
- composer init
$ composer init Do not run Composer as root/super user! See https://getcomposer.org/root for details ...
- Tampermonkey 油猴脚本中文手册(出处:https://www.itblogcn.com/article/2233.html)
文章目录 @name @namespace @copyright @version @description @icon, @iconURL, @defaulticon @icon64, @icon6 ...
- 【软件】Rhythmbox播放器调节音量
Rhythmbox播放器调节音量 零.起因 最近换了Ubuntu系统,在写代码时想听歌,故使用Rhythmbox播放器播放一些mp3文件,但同时又要看教程,希望音乐声音小一点,但是找来找去都没有发现R ...
- L2-3 锦标赛
先画图理解 具体就是先存入每个左右子树的lose,然后存入根的lose和win 然后往下建树,左右的win也可以交换 可以学习这样的完全二叉树存储结构 #include <bits/stdc++ ...
- 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
MCP 最近在 AI 领域 引发了 广泛关注,特别是在 海外各大社区 中,大家热烈讨论,热度 相当高. 我打开了 Google Trends,这是一个专门用于查看全球热点趋势的网站. 输入关键词后,可 ...
- Mybatis的动态SQL的语句
例子. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC &quo ...
- 前端自动打包工具webpack的安装和使用
一.准备 要使用webpack工具,最好了解一些基础的文件目录操作的命令行, win all里的一些常用的命令行 http://blog.csdn.net/qq_36110571/article/de ...
- 海康摄像头SDK在Linux、windows下的兼容问题
零.前言 最近一直在做人脸识别相关的应用. 主要就是使用海康的摄像头抓拍.录制视频,使用虹软的sdk进行人脸识别,使用jna调用这些sdk. 海康的sdk在使用时遭遇了很多问题,主要问题就是windo ...