zoukankan      html  css  js  c++  java
  • 模拟测试20191025

    $T1:异或$

    一看位运算,直接拆二进制分开考虑

    设$a_{i}$表示$[L,R]$中第$i$位$1$的总个数

    简单写柿子可以发现每一位的贡献为$2 imes a_{i} imes (R-L+1)-2 imes a_{i}^{2}$

    求$a_{i}$可以数位$dp$一下

    $T2:取石子$

    打表发现先手必败只有$10000+$种状态

    然而直接打表交不上去(%%%$skyh$用$301$进制打表太巨啦

    我们又发现用先手必败刷表刷不到的都是先手必拜

    那我们抛弃之前填表的方法,改成刷表就好了,只用先手必败转移就好了

    $T3:优化$

    我们发现第$1$,$k$段的贡献系数为$pm 1$

    中间的系数一定为$pm 2或0$

    且一定有如下形式$......2,0,0,-2,0,2,0......$

    即去掉$0$后两个$+$和两个$-$不能相连

    那我们设$dp_{i,j,k}$表示到位置$i$,有了$j$个块,目前状态为$k$的最大值

    $k=left{egin{matrix}
    0 &-1/-2 \
    1 &+1/+2 \
    2 &(-2/-1)+0 \
    3 &(+2/+1) +0
    end{matrix} ight.$

    最后转移再加一维,表示当前在段中还是段外就好了

  • 相关阅读:
    Java代码是怎么运行的
    Java单例模式
    redis分布式锁实现
    zuul2.0
    配置ssh免密钥登陆多台从机
    Nifi-install-config
    Configure Access to Multiple Clusters
    kubernetes集群搭建(kubeadm,kubelet)
    shell 编程
    系统管理
  • 原文地址:https://www.cnblogs.com/mikufun-hzoi-cpp/p/11736381.html
Copyright © 2011-2022 走看看