A B C E F H I J 已补 D G未补
A.Equivalent Prefixes
赛场上n^2过掉,简直不可思议。正确的解法就是维护当前这对数能影响的左右位置的区间范围。这可以用笛卡尔树或者单调栈实现。
笛卡尔树版:
#include
#include
单调栈标程:
#include
#include
B:
简单推公式,因为我们无法处理相乘的式子的积分,因为只有相加的式子才可以分开积分,所以首先我们要将式子拆分开,推出一般式,然后再简单的换元一下即可。
#include
#include
C
可以构造出一个拉格朗日函数,但是无奈我看不懂题解,无法将这个n元的函数求解。所以换了别人的思路,首先我们要知道当n大于0时,每当n越大,n减少一点带来的n^2贡献也会越大,这样就很明显了,我们现在总共只有1的费用,所以我们肯定会贪心的让整个序列n^2的最大值尽可能小。所以只要维护一个前缀和,寻找尽可能的最大值即可。
#include
#include
D.
据说是FWT 未补
E.
因为你在当前位置放下的A会对之前放下的B和之后放下的B产生贡献,当前放下的B会对之前放下的A和之后放下的A产生贡献,所以就可以按照这种方式进行DP。
你在当前位置能放下A,是因为构成AB的数量不够或者构成BA的数量不够。
你在当前位置能放下B,是因为构成BA的数量不够或者构成AB的数量不够。
按照这种方式递推即可,懒得写递推式了。
#include
#include
F.
在三角形内随机取点,求三角形分割的最大面积的期望。
答案是11/36*S。可以积分求出
#include
#include
#include
#include
#include
#include
#include
#include
#include
G.
未补
H.
求序列内的所有集合异或和等于0的集合大小和
看了好多题解,第一次接触线性基,费力理解。
首先集合大小和可以转换为序列中每个元素的参与贡献和。
第一步:我们先求出整个序列的线性基(大小为r),对于线性基外的元素,他们的每个集合的异或和都可以用线性基内的元素表示出来,每个元素参与贡献为2^(n-r-1).总贡献为(n-r)*2^(n-r-1).
第二步:算线性基里面元素的贡献,对于线性基里面的一个数,如果他能被另外n-1个数表示出来,那就证明存在另外一个线性基(线性基大小相等),而它是处于线性基外的元素,贡献也为2^(n-r-1)。依次判断线性基内的每个元素即可。
#include
#include
I.
队友补的
J.
水
#include
#include
#include
#include
#include
#include
#include