zoukankan      html  css  js  c++  java
  • 模拟32 题解

    A. chinese

    要求的答案是所有情况总的炼字个数。

    观察到题中k的范围比较小,所以对k下手。

    枚举炼字的大小,限制与它同一行同一列的数的大小,其它数随便选就可以了。

    直接快速幂,$O(klogmod)$可过。

    写的帅一点,弄个线性筛,直接推一些东西,复杂度就变成$O(frac{klogmod}{lnk})$了,可以近似认为$O(k)$

     

    B. physics

    正向处理比较难搞,因为答案会不断变小,无法确定下一个答案到底在哪里。

    离线读入所有修改,时光倒流处理答案。

    好处是答案只会不断变大,也就是说可以直接取$max$。

    处理方式是:

    维护出$n^2$个点向上向下最多延伸的1的个数,分别计为$up,down$。

    如果指定某一行,指定答案的大小,可以用单调队列$O(n)$检验是否合法。

    对于每次修改,影响的只有一列上的数的$up,down$。

    对于每次修改,如果答案会被更新,也就一定会被修改所在行能计算出的最优答案更新。

    记录答案是多少,因为单调不降,直接不断尝试更新就可以了。

     

     

     

    C. chemistry

    期望dp,意思大概是维护1~k次方的期望值,然后就能dp了??

    不会做。

  • 相关阅读:
    需要学习的技术
    面试资料
    数据库设计三大范式
    java List 排序 Collections.sort() 对 List 排序
    hibernate的延迟加载
    索引失效原因总结
    mybatis调用oracle存储过程
    Android开发中需要注意哪些坑
    Intent在Activity之间传值的几种方式
    Android动画(Animations)
  • 原文地址:https://www.cnblogs.com/skyh/p/11451697.html
Copyright © 2011-2022 走看看