• 省选模拟50


    A. 小A的树

      看到前k大很容易想到类似超级钢琴那样的做法。

      所以问题就转化成了给定一个点和一个区间,求点到这个区间中的点的最远路径。这个东西可以用直径合并简单的维护出来,也就是用线段树维护每个区间的直径。

      然后用一个堆来维护当前的最优决策,不断取出堆顶并且更新即可。

    B. 小B的序列

      看到只有or和and应该就能想到势能线段树了,但是考场上一直不知道怎么维护这个标记,然后就死掉了。

      实际上还是维护标记的套路,也就是强制先下传and再下传or,然后考虑每次操作对于标记的影响就可以了。

      然后对于每次操作,假如当前修改的操作对于整个区间的贡献是相同的,那么可以直接打标记,因为此时可以知道新的最值。

      否则暴力向下递归到需要修改的节点。

      根据势能分析可以知道复杂度是正确的。

    C. 小C的利是

      枚举排列的题可以想一想行列式。

      因为行列式的加法比较难搞所以提到指数上,这样就构造了一个多项式。为了防止被卡,可以给系数乘上一个随机数。

      然后发现我们只关注k的倍数处的系数,所以考虑搞个单位根反演。

      然后将各个单位根代进去,将行列式相加,就可以得到k的倍数处的系数。

      然后判断这个系数是不是0即可。

  • 相关阅读:
    疫情控制
    2020 CSP-J 多校赛 Day 2 T2 题解
    三校联考-水题狂欢信心赛
    QBXT 提高组储备营 2020.夏 游记
    【题解】(我出的题)XM捡面筋
    【题解】P4025 [PA2014]Bohater
    【题解】1644:【例 4】佳佳的 Fibonacci
    【题解】CF1165F2 Microtransactions (hard version)
    P2261 [CQOI2007]余数求和
    OVO——扶咕咕的20道CF
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12535154.html
Copyright © 2020-2023  润新知