zoukankan      html  css  js  c++  java
  • 20.5.16总结

    20.5.16总结

    得分

    估分:100+100+70

    实际:100+100+100

    T3没被卡。。。

    T1

    大水题。。。

    结果很多人居然只打了nm^2的???

    首先显然二分答案

    然后我们可以用字符串哈希判断有没有重复的子串

    T2

    这题考的是阅读理解。。。

    关键要看到每种颜色在整个过程只能用一次。

    于是我们就可以分治了,在一个分治区间第一次出现的数字肯定是最先涂的颜色

    预处理某个颜色后面的第一个同颜色点的位置,还有某种颜色最后出现的位置

    T3

    挺有意思的题

    题目要求每个区间的最大的三个数的乘积之和,思路肯定是找到那三个数,然后计算有多少个区间的最大的三个数就是它们

    我的想法是从大到小加点,用set维护一个点左边和右边的大于它的数,分别要找三个。O(nlogn)

    zys提供了一种O(n)的做法

    首先用单调栈求出每个点(设为x)左右第一个大于它的数(l1,r1)的位置,接着我们要求左右第二个大于它的数(l2,r2)的位置,把x的询问挂在l1,r1上面,由于l2-l1和r1-r2之间的数都小于x,所以当扫到x的时候,l2r2都还在单调栈上面。类似的求出l3r3

    小结

    1. 认真读题,逐字逐句看题
    2. 求区间贡献考虑分治或者枚举有贡献的点的做法
  • 相关阅读:
    十二道MR习题
    十二道MR习题 – 1 – 排序
    初识HBase
    Java内存分析1
    scala学习手记40
    scala学习手记40
    scala学习手记39
    scala学习手记38
    scala学习手记37
    scala学习手记36
  • 原文地址:https://www.cnblogs.com/leason-lyx/p/12900826.html
Copyright © 2011-2022 走看看