• 省选模拟85 题解


    A. rng

    有这样一个想法,我们把实数值域变成整数的。

    具体来说就是把给每个区间的 $r_i$ 都减去 $1$。

    这样的话期望就不难计算了:

    以值域作为下标,修改就是每次把 $[l_i,r_i]$ 区间加上一个 $frac{1}{r_i-l_i+1}$。

    每次查询逆序对,其实就是求这个值: $dfrac{sum limits_{i=l_i}^{r_i}(frac{val_i}{2}+sum limits_{j=0}^{i-1} val_j)}{r_i-l_i+1}$

    拆一下式子可以发现用线段树维护区间权值和、区间下标*权值和即可。

    B. lg

    因为求乘积的性质很好,可以考虑枚举最终的 $lcm$ 中出现了 $p^k$,然后再枚举 $gcd$ 的取值,然后求这样的方案数有多少个。

    然后对于 gcd 显然是可以莫比乌斯反演的,还有一个限制是对于质因子 $p$,$p^k$ 必须出现并且不能出现 $p^{a},a>k$。

    处理这个限制的方法是用至多去容斥,最大值为 $k$ 等价于 至多为 $k$ 减去 至多为 $k-1$。

    然后 $[1,m]$ 之内满足 $p$ 质因子次数至多为 $k$ 并且是 $i$ 的倍数的数的个数就是 $frac{m}{lcm(i,p^{k+1})}$。

    然后写出来式子可以发现很多枚举是无意义的,有意义的有两种情况:

    1.枚举的 $i$ 与 $p$ 互质,并且 $i*p leq m$。

    2.$i$ 与 $p$ 不互质。

    前一种的复杂度可以用调和级数分析,后一种的复杂度可以用 $i$ 的质因子个数分析。

    C. pm

    考虑取出每个进行操作的区间,一定是长度为 $k$ 的区间用了 $k-1$ 次操作。

    然后考虑求出来所有可能进行操作的区间,如果有了这些区间进行简单的区间不交的 dp 即可构造出方案。

    然后对于可行区间,一定满足的性质是:

    1.区间下标和值域同为 $[l,r]$。

    2.区间内逆序对个数恰为 $r-l$。

    枚举右端点 $r$,只要求出最大的合法的 $l$。

    首先考虑找到满足第一个条件的 $l$,可以把第一个条件转化为:

    区间内最大值等于 $r$ 并且区间内的 $sum limits_{i=l}^r a_i-i =0$。

    考虑对 $a_i-i$作一个前缀和,后一个条件等价于两个前缀和相等,用 map 就可以查询。

    然后只要区间查询最大值判断是否合法。如果不合法,那么显然使得 $l$ 更小也不可能合法。

    对于第二个条件,问题是区间逆序对,但是有特殊性质:询问区间内的值域是连续的。

    所以区间内与区间外的逆序对个数的形式是简单的,所以直接用 $[1,l-1]$ 前缀中大于 $r$ 的值的个数减一减就好了。 

    至于构造方案,只要不断取出区间内最小的元素,然后把它放到序列最前面即可,因为每次都对应逆序对个数 $-1$,所以复杂度和正确性都是正确的。

  • 相关阅读:
    [bbk5102] 第38集 第四章 Flashback Database 02
    index
    [bbk5110] 第41集 第四章 Flashback Database 05
    支持向量机SVM基本问题
    凸优化小结
    博客基本操作
    感知机vs支持向量机
    PAYPAL商户集成指南-IPN&PDT变量列表
    一个IBM人的离职泪:伟大公司,SB老板,苦逼员工 (zz.IS2120.BG57IV3)
    Google Reader 7.1停止服务
  • 原文地址:https://www.cnblogs.com/skyh/p/12814063.html
Copyright © 2020-2023  润新知