20.5.16总结
Posted leason-lyx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
小结
- 认真读题,逐字逐句看题
- 求区间贡献考虑分治或者枚举有贡献的点的做法
以上是关于20.5.16总结的主要内容,如果未能解决你的问题,请参考以下文章