【考试总结】2021-04-04

A.rng

考场并没有具体想明白这个概率如何计算,然后就挂掉 \(60\)

\([l_1,r_1],[l_2,r_2]\) 对应到平面直角坐标系上面,在 \(y=x\) 上面的面积除掉总面积就是对应概率

那么考虑其可以构成一个梯形或者三角形,那么设

\[f(x_1,x_2)=\begin{cases} x_1^2\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [x_1<x_2]\\2x_1x_2-x_2^2\ \ \ \ \ \ \ [x_1\le x_2]\end{cases} \]

那么计算面积就可以直接容斥,也就是 \(f(l_1,l_2)-f(l_1,r_2)-f(l_2,r_1)+f(r_1,r_2)/(2len_1len_2)\)

那么写 \(4\)\(f\) 分别表示,每个分大小讨论,开两个 \(BIT\) 做即可

B.lg

前置知识:\(\varphi * I=Id\)

考虑将把卷积里面的 \(\varphi(x)\) 换成 \(\varphi(\frac{n}x)\)

也就是有多少个不大于 \(n\) 的数只是 \(x\) 的倍数,然后就没了

本题考虑对 \(lcm\) 中的每个因子进行考虑,枚举每个因子的次数,那么 \(gcd\) 的限制就是至少有一个是其倍数

可以用任意选减掉没有其倍数再任意选来容斥得到,套用上面的卷积就能把式子变成:

\[Ans=\prod\limits_{p^i\le m} p^{ \sum\limits_{x=1}^{m} f(p^i,x) \varphi(x)} \]

实现的时候先枚举 \(p^{i}\),计算指数,乘起来即可

注意指数上取模是 \(mod-1\)

C.pm

先贪心:如果交换一个连续段使得交换后可以让所有的点放到对应位置,同时交换次数少于 \(len\) 那么交换

不难发现这样一个段必然是越短越好,每次可以把操作次数减少 \(1\),也就是每个点选择满足的最右一个

这样一个连续段需要满足值域下标相同,这个可以使用前缀和 ,区间 \(\max\) 解决

另外,还需要满足这个区间里面的逆序对个数的限制,因为值域的条件,那么计算 \([1,l-1]\) 里面 \([r+1,n]\) 的个数并减掉,加上前缀逆序对的贡献

不难发现这个可以使用主席树实现
动态
考虑这样一个段的逆序对个数必然是不小于 \(len-1\) 的,严谨证明考虑归纳,因为最后一个点必然贡献答案,否则可以删掉(也就是等于区间最小值),类似得如果不贡献可以删掉一个前缀区间

(用词意会即可,毕竟不是卷面书写)

同时只需要关心最后一个值域下标相同的点,那么可以在 \(\Theta(n\log n)\) 的复杂度内计算这样的点

剩下的考虑 \(dp\) 即可,转移考虑取上一个或者 把这一段进行交换,记录转移点,最后输出即可

在输出答案的时候可以将每个点不断交换即可,记录每个点的位置,从小到大枚举,复杂度为逆序对个数,不超过 \(n\)

这题印象深刻,而且理解相对明白了(证了这么多地方)

posted @ 2021-04-05 06:17  yspm  阅读(54)  评论(0编辑  收藏  举报