zoukankan      html  css  js  c++  java
  • 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),的确是非常重要。

  • 相关阅读:
    前端开发经验总结
    开发组件的原则
    jQuery deferred对象API详解
    prototype、constructor那点事儿
    text-overflow:ellipsis的那点事儿
    9 个超实用的 jQuery 代码片段
    BFC
    Console命令详解,让调试js代码变得更简单
    前端css规范
    什么是FOUC?如何避免FOUC?
  • 原文地址:https://www.cnblogs.com/wangximing/p/11364863.html
Copyright © 2011-2022 走看看