zoukankan      html  css  js  c++  java
  • 省选模拟5

    A. 青蛙

      每块石头都必须要踩一次,那么不难发现让最便宜的青蛙踩尽量多的距离超过d的石头,而其他青蛙尽量跳,跳不过去了直接从1跳到n一定最优。

      所以只要判断出最多可以让多少只青蛙跳过去即可,二分即可。

      然而没有开long long ,100->0。

    B. 一起自习的日子

      暴力将伯努利数代入即可。

      前两天做了一道插值让我一直以为这道题是插值,然而后面有一个式子是关于$id$的多项式,然而d是一个常数,所以我以为这东西不是多项式。

      然而这东西确实是多项式。。。可以看作多于原多项式的拉伸,所以暴力插值也是可以AC的。

      考场最后试图推伯努利数,然而忘了计算自然数幂和的公式,所以没有推出来。

    C. 字符串

      一个奇怪的思路:

      建出后缀自动机,处理出每个节点的lastpos,即最后一次出现的位置。那么当每个节点lastpos更新时,就可以用上一个lastpos更新当前位置的答案,可以用可持久化线段数实现这个更新。

      显然新建一个节点时会将一条祖先链的lastpos修改为当前长度,然而暴力做的复杂度可以被卡成$O(n)$,所以不是很可行。

      考虑使用LCT优化这个过程。若我们将当前节点access,那么就会将该点到根的链拉到同一条重链中,这启示我们可以保证一条重链中的lastpos相同。

      对于lastpos相同的节点,我们只需要关注长度的最大值,所以在splay中维护这个信息即可,在access过程中,将经过的重链对应的ans修改即可。

      实现起来细节很多。

  • 相关阅读:
    老李分享:qtp自动化测试框架赏析-关键字自动化测试框架
    QTP自动化测试培训:描述编程之WebElement
    测试开发Python培训:自动发布新浪微博-技术篇
    老李分享:开发python的unittest结果输出样式
    布隆过滤器
    缓存击穿、缓存穿透、缓存雪崩
    JVM锁优化
    Java 异常体系
    常用的SQL调优
    Mysql 索引
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12184881.html
Copyright © 2011-2022 走看看