zoukankan      html  css  js  c++  java
  • 【考试总结2021-02-16】跳跃

    Skip

    容易得到 (f[i]=minlimits_{a_jle a_i}(f_j+sumlimits_{i=1}^{i-j+1} i+v[i])),最后后转移给 (f[n+1])

    (y_k=frac{k^2-k}2+f_k),那么如果 (j>k)(frac{y_j-y_k}{j-k} >-i)(j) 优于 (k)

    (cdq),处理左边对右边的贡献的时候边归并边建凸包

    String

    考虑 (kle 8) 的时候是一个记搜,把每个出现次数的数量压到四位上面(因为最多可能是 (8),所以要多压一下)

    搜的时候存当前长度,当前的状态,剩余排名,和上一个的数

    转移的时候枚举所有的字符记搜就好

    考虑如何扩展到 (kle 26),因为总数很大,正序枚举 (a o z) 直到 (kle 8) 即可

    最后一步不好想,前面的记搜没做出来不太应该

    Permutation

    相邻两个排列,对于第 (k) 位发生了变化,此时 (k) 位以后一定是由(n-k o {n-1}) 变为了 (x_{k}+1,x{k}+2,x{k}+3,...n)

    方案数唯一,某一位的变化也可以快速计算。

    而前面只要乱选就好了,使用组合数。

    于是我们只要枚举第 (x(x≤k)) 位当前是 (y) 的贡献来进行计算,用组合恒等式优化

    复杂度 (Theta(n))

    理解还是不太深刻,先鸽掉

  • 相关阅读:
    黄宗禹9.11作业
    黄宗禹第一次作业
    9.11
    9.18
    计算平均速度
    圆的周长与面积
    JAVA 作业
    9.11
    9.25
    计算平均速度题
  • 原文地址:https://www.cnblogs.com/yspm/p/14454705.html
Copyright © 2011-2022 走看看