CSPS_104
又被爆踩。
正解写挂。
暴力不会。
只会改题。
还要加油。
T1
$nlog^2$是显然的
那么考虑只二分一次,就$nlog$了!
有什么能通过一次二分$O(1)$得到呢?
二分a的位置,$O(1)$得到b的位置
check的特判极其惨烈,%%%$Rock_B$调出来了
另一种简单一点的做法:
二分查找不好搞,考虑另一个二分——分治
通过分治,让每次的询问参数减半,也是$O(logn)$的复杂度
设计一个函数找到a的长度为lena,b的长度为lenb时,排名为rank的元素
那么把每次询问的rank分成一半,在a,b中找到对应的位置(长度不够则让另一个串多分一点)
如果$a[k/2]<b[k/2]$,则可知$a[1]~a[k/2]$都不可能成为排名为rank的元素
因为把ab放一起排序后$a[k/2]$后面的元素太多了..显然一定多于$lena+lenb-rank$
所以把$a[1]~a[k/2]$直接排除出答案,把rank-=k/2(或者当lena<k/2时的lena),递给下一层解决
T2
一个dp分成两部分
$dp[i]=min(dp[j-1]+value(j,i))$
单调栈维护所有可能贡献出value的j(单调递增栈)
对同一个j维护可能的最大$dp[k-1](k<=j)$,随便用什么数据结构维护栈里的最大值即可。
T3
暴力我打的是vector启发式归并,后来电脑关了,不知道有多少分。
正解?
高度烧脑警告。
我和miku啃了好久题解才弄明白
(miku教了我好久我才懂的差不多)
首先对于一个整型随机变量x有这样一个东西:
$E(x)=\sum\limits_{i=1}^{inf} P(x>=i)$
E(x)为x取值的期望,P为命题成立的概率。
证明么..
$$\begin{array}{rcl}\\E(x)&=&\sum\limits_{i=1}^{inf} i*P(x==i)\\&=&\sum\limits_{i=1}^{inf} i*(P(x>=i)-P(x>=i+1))\\&=&1*P(x>=1)-1*P(x>=2)+2*P(x>=2)-2*P(x>=3)+...\\&=&\sum\limits_{i=1}^{inf} P(x>=i)\end{array}$$
现在有了这样一个东西,先考虑每个询问的答案
$E_q=\sum\limits_{i=1}^{maxv} P(max_{j=l}^{r} val_j >=i)$
容易想到$i>maxv$的时候没有贡献。
那么求每个位置的最小值大于等于x的概率即可
这个概率就是小于x的数都不出现而大于等于x的数出现一个的概率
不是很好求,转化一下
求它的反面,也就是每个点的最小值都小于x,也就是大于等于x的都不出现
这个就好列式了,而且每个位置出现每个值的概率可以预处理,看起来可做了
$E_q=\sum\limits_{i=1}^{maxv} 1-\prod 1-P(v_j>=i)$
$v_j$是第j个位置的最小值
总结一下,答案就是:$ans=\sum\limits_{i=1}^{maxv} \sum\limits_{q=1}^{Q} 1- \prod 1-P(v_j>=i) (L[q]<=j<=R[q])$
可以想到,枚举i时,只有出现魔法石的i才会有$\prod 1-P()$的值的改变,其他情况下后面那坨柿子完全不变
所以只需要枚举有石头的i,没有石头的i没有变化可以放在一起统计
考虑维护后面那坨柿子。
首先那个1可以直接提出来,那么剩下的就是一个连乘的和
考虑每个石头,他的加入只会影响“某些询问”的连乘中的“某一项”
由于区间左右端点对应单调,他影响的区间也一定是连续的
所以可以用数据结构批量修改区间的连乘,具体做法为把他们的权值乘上一个$\frac{1-P_{now}}{1-P_{last}}$
推荐使用线段树区间修改。
大体的思路如上,细节比较多..
CSPS_104的更多相关文章
随机推荐
- Eclipse的Debug各种视图介绍(二)
本文链接:https://blog.csdn.net/u011781521/article/details/55000066 http://blog.csdn.net/u010075335/ar ...
- 你真的懂Spring Java Config 吗?Full @Configuration vs lite @Bean mode
Full @Configuration和lite @Bean mode 是 Spring Java Config 中两个非常有意思的概念. 先来看一下官方文档关于这两者的相关内容: The @Bean ...
- [以太坊源代码分析] I.区块和交易,合约和虚拟机
最近在看以太坊(Ethereum)的源代码, 初初看出点眉目. 区块链是近年热点之一,面向大众读者介绍概念的文章无数,有兴趣的朋友可自行搜索.我会从源代码实现入手,较系统的介绍一下以太坊的系统设计和协 ...
- 网络请求中的cookie与set-Cookie的交互模式的一些问题解析
首先我们需要思考,很多问题. 1.当很多人访问统一个网服务器,服务器如何来区分不同的用户呢? 答:sessionid,sessionid保证了浏览器和服务器唯一性的通信凭证号码,session保存在服 ...
- 【TencentOS tiny】 超详细的TencentOS tiny移植到STM32F103全教程
移植前的准备工作 1. 获取STM32的裸机工程模板 STM32的裸机工程模板直接使用野火STM32开发板配套的固件库例程即可.可以从我github上获取https://github.com/jiej ...
- 从零学习基于Python的RobotFramework自动化
从零学习基于Python的RobotFramework自动化 一. Python基础 1) 版本差异 版本 编码 语法 其他 2.X ASCII try: raise Type ...
- Java源码解析|HashMap的前世今生
HashMap的前世今生 Java8在Java7的基础上,做了一些改进和优化. 底层数据结构和实现方法上,HashMap几乎重写了一套 所有的集合都新增了函数式的方法,比如说forEach,也新增了很 ...
- mvc请求管道(一)
一.前言 在平常做后台开发的时候,经常会说到请求管道,很多开发者都知道这个,也能说几句,可能没法详细的去介绍,今天就来详细的说一下这个. 二.到达IIS之前 请看下面这个流程图.从用户打开浏览器到请求 ...
- 域渗透-Kerberos协议中spn的应用
0x01 关于SPN 服务主体名称(SPN)是Kerberos客户端用于唯一标识给特定Kerberos目标计算机的服务实例名称. 服务主体名称是服务实例(可以理解为一个服务,比如 HTTP.MSSQL ...
- opencv::直方图均衡化
直方图均衡化 图像直方图: 是指对整个图像像在灰度范围内的像素值是指对整个图像像在灰度范围内的像素值(~)统计出现频率次数,据此生成的直方图,称为图像直方图-直方图. 直方图反映了图像灰度的分布情况. ...