「至今不会」

• 有 n 堆⽯头,第 i 堆个数为 a[i],每次随机选⼀个⽯头然后把那⼀整堆都扔了,求第 1 堆⽯头期望第⼏次被扔

 • 给 1…n 这 n 个数,每次随机选择⼀个还在的数并且删掉他的所有约数,求期望⼏次删完

• 给定 n 个硬币,第 i 个硬币的价值为 w[i],每次随机取⾛⼀个硬币,获得的收益是左右两个硬币的价值的乘积,求期望总价值

会了。

期望总价值等价于求总价值再给它套个期望。

那么我们考虑总价值是什么。

$S=sum^{i<j}X(i,j)*W(i)*W(j)$

$E(S)=sum^{i<j}E(X(i,j))*W(i)*W(j)$

$E(X(i,j))=2/C(j-i+1,2)$

那么$E(S)=sum^{i<j}2/C(j-i+1,2)*W(i)*W(j)$

• 求所有区间的最大值*最小值之和

天皇的做法。

普通分治。以最大值分开。这个可以ST表实现 $O(n*logn)$

然后可以维护区间的两个单调队列(用deque)。(里面放下标,方便之后的二分,deque是连续内存)(吗?)

表示从左/右端点开始的最小值,那么它一定是单调不增的,我们在小的分治区间枚举每个最小值(单减),大的分治区间用二分二分出大于当前枚举的点的权值的下标。

然后用线段树区间查询出整个区间的最小值×数量的和。

考虑怎么合并单调队列。

以从左端点开始的deque为例。

合并两个deque,就把右边的区间的队头(最大值)一直pop,直到队头小于等于左边的队尾,然后更新线段树上的权值。

$O(n*log^2)$

 • 求二维平面上最近点对

原文地址:https://www.cnblogs.com/hzoi2018-xuefeng/p/11625236.html