zoukankan      html  css  js  c++  java
  • 【20181024T2】小C的序列【GCD性质+链表】

    题面

    【错解】

    一眼不可做啊

    哎分治?

    算不了啊

    真的是,打暴力走人

    20pts

    (事实上,还有20pts是随机数据,加个小小的特判就可以)

    【正解】

    首先,从l开始往后gcd最多只有O(log)种取值,并且是单调减的

    所以我们可以二分log次边界,用线段树维护区间gcd,可以做到(O(Nlog_N^4))

    事实上,gcd多算了也没有影响,所以可以用st表优化到(O(Nlog_N^3))

    然而上面的做法和正解没有一点关系

    我们发现每次都会二分很多重复的,显得很浪费农民伯伯种操作次数很辛苦的

    我们还发现,如果我们倒着添加,每次的段实际上是之前合并起来的

    所以我们可以用链表维护O(1)删除,每个元素维护它到下一个之前的gcd,开个map记录答案就可以了

    复杂度(O(Nlog_N^2))

    代码

  • 相关阅读:
    Request的方法演示
    Request内置对象
    Servlet运行机制
    Servlet生命周期
    Servlet概念与配置
    http协议
    数据库连接池
    代码管理git托管到码云(github)开源中国
    事务
    类的执行先后顺序
  • 原文地址:https://www.cnblogs.com/lstoi/p/9845947.html
Copyright © 2011-2022 走看看