zoukankan      html  css  js  c++  java
  • 「考试」省选80

    T1
    仓鼠讲的(dp)嵌套原题。
    考虑对于一个确定的(T,V)如何(check)合法。
    (dp[i][a][b][c][d])为最高的前(i)位,(x)是否触及上界/下界,(y)是否触及上界/下界。
    那么我们把这个状态压一下。
    (dp[i][S])为所有可以由状态的集合(S)得到的(V)的个数。
    那么就可以转移了。
    复杂度是(O(602^{16}2^6))
    (if)剪掉大量的枝。

    T2
    按照步子分块。
    小于等于(B)的部分我们开(B)个线段树存,打整体加法标记。
    大于(B)的部分我们直接暴力模拟,用一个树状数组存,每次把位置大于(1e5)的跳蚤舍弃掉。
    考虑复杂度,是(O(BQlogQ+frac{Q}{B}QlogQ))
    这样的话我们的(B)(sqrt{Q})比较优秀,复杂度就是(O(Qsqrt{Q}logQ))得了。

    T3
    很久之前做的状压题的正解打法。
    我们把状态都找出来,然后发现(n=3)的时候有一个情况很特殊,第一格和第三格不属于同一个连通块和属于同一个连通块,这样要区分开。
    最终状态一共有9个。
    然后对于这些状态我们发现(dp)的转移可以用转移矩阵来表示,其中矩阵的每一个元素都是一个单项式。
    这样我们的(dp)定义变成多项式。
    然后发现直接乘复杂度爆炸了。
    我们分别带入单位元然后做矩阵快速幂求出点值,然后再逆向(IDFT)插回(dp)数组定义的多项式就可以了。

  • 相关阅读:
    matlab图像对比度增强,拉伸和灰度变换
    javascript 数据结构----集合
    reduce ,redceRight 在react中的使用
    找前端私活
    数组对象 按某个属性排序
    原生js获取scrollTop
    react 绑定事件 总是默认触发
    横向柱状图
    css 四角辉光
    Android学习笔记_点九绘图与软键盘和事件传递
  • 原文地址:https://www.cnblogs.com/Lrefrain/p/12773899.html
Copyright © 2011-2022 走看看