标签:最大的 二分答案 枚举 过程 意思 子串 最大 单调栈 维护
估分:100+100+70
实际:100+100+100
T3没被卡。。。
大水题。。。
结果很多人居然只打了nm^2的???
首先显然二分答案
然后我们可以用字符串哈希判断有没有重复的子串
这题考的是阅读理解。。。
关键要看到每种颜色在整个过程只能用一次。
于是我们就可以分治了,在一个分治区间第一次出现的数字肯定是最先涂的颜色
预处理某个颜色后面的第一个同颜色点的位置,还有某种颜色最后出现的位置
挺有意思的题
题目要求每个区间的最大的三个数的乘积之和,思路肯定是找到那三个数,然后计算有多少个区间的最大的三个数就是它们
我的想法是从大到小加点,用set维护一个点左边和右边的大于它的数,分别要找三个。O(nlogn)
zys提供了一种O(n)的做法
首先用单调栈求出每个点(设为x)左右第一个大于它的数(l1,r1)的位置,接着我们要求左右第二个大于它的数(l2,r2)的位置,把x的询问挂在l1,r1上面,由于l2-l1和r1-r2之间的数都小于x,所以当扫到x的时候,l2r2都还在单调栈上面。类似的求出l3r3
标签:最大的 二分答案 枚举 过程 意思 子串 最大 单调栈 维护
原文地址:https://www.cnblogs.com/leason-lyx/p/12900826.html