• 2019.8.16刷题统计


    今天发现1144题数据有错,总是输出超限,而且没有任何人通过这道题,希望老师重新看看数据。

    第一题:1145

    这道题就是RMQ模板加上循环n-k+1次的查询操作。

    AC代码:

    第二题:1146

    这道题有一定难度(我稍微看了一下上课时写的代码)。

    首先,在这道题目中,可以知道这样一点:

    再明确一个公式:x个数中任选2个组合的公式为

    也可以这样算x+1个数中任选2个组合:

    还需要注意以下一点:

    这样,程序可以用如下思路:

    ①从0~k-1枚举颜色

      ②ans+=第二个公式(x=颜色为①的点的数量)

      ③从1~n枚举颜色为①的点

        if(枚举到的不是第一个颜色为①的点)

          if(!ok(上一个为当前颜色的点,当前点))//通过上面推理,说明ok(x,x+1~当前点)(x=上一次sum清空的点+1~当前点-1)都不合法,相当于不合法的点数=第二个公式(x=累加后的sum)

            sum累加

          else

            ans-=第二个公式(x=sum),sum清空

    有了思路以后,实现就很简单了。

    最后需要注意以下一点:开long long!

    AC代码:

    第三题:1147

    这道题就是用两个ST表来记录最大/最小值,然后相减即可。

    AC代码:

    第四题:1148

    这道题更简单,完全就是ST表的模板。

    AC代码:

    今天刷的全部题目都是ST表的题目,明天开始图论II。

    倍增ST表不仅不难、很好写,而且能够使O(nm)这样高的时间复杂度降低到O(nlogn),的确是非常重要。

  • 相关阅读:
    开门(open_door_pick_demo.py)的学习教程(十一)
    Bert源码解读(二)
    Transformer和Bert 的学习(一)
    Android笔记
    JSP 第八周课后作业
    JSPd第七周课后作业 2021/04/14
    JSP第六次课后作业 2021/04/07
    JSP第五次课后作业 2021/03/31
    JSP第四次课后作业 2021/03/24
    JSP第二次课后作业 2021/03/10
  • 原文地址:https://www.cnblogs.com/wangximing/p/11364863.html
Copyright © 2020-2023  润新知