zoukankan      html  css  js  c++  java
  • csp-s模拟86

    T1:
      按位考虑,考虑每一位1的个数,类似数位dp就好了
     
    T2:
      好像是什么威佐夫博弈的变形?
      正解咕了,可以看代码
      有另一种比较好的思路
      由打表可得,必败局面很少!
      而且有一个显然的性质是,必胜局面一定可以转移到必败局面
      那么我们可以用必败局面反推,若一个枚举到一个局面时它还没有被转移到,那么它就是一个必败局面
      卡卡常就过了
     
    T3:
      有一个很强的技巧:(max_i (|x_i-y_i|)=max_i(max(x_i-y_i,y_i-x_i))
      说起来好像很简单,但我没想到……
      那么我们就可以对两种情况都求出max来,然后再取max即可
      具体来说我们将绝对值拆开,然后考虑(s_i)的贡献,发现贡献系数应该是这个样子:
    (pm 1,0,2,-2,0,0,2,0,-2...,pm 1)
      即:除开头和结尾外,贡献应该是2和-2相间的,且中间是0
      形象化的理解可以把这些系数看作一条折线,只有在端点和拐点有贡献,那么我们就可以基于这个来dp
      设计(f_{i,j,(0/1/2/3)})表示考虑到i点,当前是第j段,点i是在上升/下降/最高点/最低点,分别系数为0/0/2/-2
      因为每一段贡献系数是相同的,所以一个一个点加入即可

  • 相关阅读:
    更新glibc,删除libc库后,命令行都不能使用了
    进程和线程、协程的区别
    PMP项目管理--资源管理
    清除缓存 echo 1/2/3 > /proc/sys/vm/drop_caches
    gdb malloc方法
    随时更新---能力集
    输出gdb调试信息到文件中
    主动生成core文件 gcore +pid
    PMP项目管理--风险管理
    linux后台程序
  • 原文地址:https://www.cnblogs.com/Gkeng/p/11835696.html
Copyright © 2011-2022 走看看