省选模拟85

A. rng

  由于实数域很难搞,所以一个自然的想法是整成整数,那么一个数为x对应的意思实际上变成了这个数在$[x,x+1]$中随机。

  所以对于前后的两个数x,y,若x=y,那么他们两个形成逆序对的期望是0.5,若x>y,那么形成逆序对的期望是1。

  所以可以得到这个东西实际上是要求一个前缀和的前缀和的形式,线段树维护即可。

B. lg

  因为是求乘积,所以一个自然的想法是考虑每个质因子的贡献。

  然后枚举这个质因子出现的最高次幂,然后就是要求每个gcd出现的次数。

  求gcd出现次数是一个经典容斥,就是拿mu容斥。

  然后可以发现,gcd可能的取值个数是有限的,所以考虑只对这些gcd进行计算。

  将gcd分为两类,一类与当前枚举的p互质,另一类不互质。

  互质的由于有$lcm<=m$的存在,个数大约是类似调和级数的东西,可以暴力统计。

  不互质的就暴力枚举p的倍数,同样类似调和级数。

  然后对于每个gcd由于不能暴力枚举倍数容斥,所以单独考虑每个数的贡献,容易发现就是$phi$。

C. pm

  对于每个需要进行操作的区间,由于区间是连续的,所以至少进行了$len-1$次操作。

  然后由于最劣情况下也只需要$len$次操作,所以只要找出来哪些区间可以进行$len-1$次操作。

  然后可以发现一个可行区间一定满足值域和下标范围相同且逆序对个数为$len-1$。

  所以求出来这样的区间然后dp出最多能够取多少个不相交的区间即可。

原文地址:https://www.cnblogs.com/hzoi-cbx/p/12815039.html