• 省选模拟五十五 题解


    T1

    这种区间$gcd$问题首先想到做多有$nlog$个权值

    把它们按照权值排个序

    每一个都形如${L,R,x,w}$

    对于权值相同的便可以进行dp了

    设$f[i]$代表$[1,i]$的方案数

    对于每个${L,R,x,w}$都会使$f[x+1...n]+=sum_{i=L}^{R}f[i-1]$

    用线段树维护即可

    类似的处理出反着的方案数设为$g$

    对于一个士兵$S$而言

    它不被选入的方案就是$f[S-1]*g[S+1]$

    维护一个变量$T$代表总的方案数(即$f[n]$之和)

    用T减去即可得到最终答案

    每次S的贡献不同的只有O($k$)个($k$是这个权值的个数)

    所以最终复杂度$O(nlognlogn)$

    T2

    结论一:答案等于每个白点$(x,y)$的$lowbit(max(x,y))$的异或和

    $[0,2^30)$建树方便$O(1)$算出答案

    考虑一个树点的答案:

    这个树点的区间一定是$[a*2^b,(a+1)*2^b)$

    结论二:贡献就是$lowbit(a*2^b) xor 2^{b-1}$

    扫描线扫一遍即可

  • 相关阅读:
    79. 滑动窗口的最大值
    78. 左旋转字符串
    77. 翻转单词顺序
    76. 和为S的连续正数序列
    75. 和为S的两个数字
    innodb 锁机制
    MVCC
    linux查看状态命令
    design pattern 资料整理
    mysql资料汇总
  • 原文地址:https://www.cnblogs.com/AthosD/p/12584542.html
Copyright © 2020-2023  润新知