随笔分类 -  数据结构-ST表

摘要:题意:一个n*m的矩形区域,每个点上都有一些苹果,有k个人要买苹果,每个人可以买某个矩形区域内的至多x个苹果,问最多能卖出去多少个苹果。(n,m<=50,k<=1e5) 最大流,建图需要用ST表优化,这样每个人至多只需与4个点相连就能确定一个矩形区域。 1 #include<bits/stdc++. 阅读全文
posted @ 2020-04-12 20:32 jrltx 阅读(223) 评论(0) 推荐(0)
摘要:题目链接 先dp求出以每个红色区域右下角为中心的能成为logo的最大半径 然后二维RMQ预处理,之后可O(1)询问任意子矩形中的最大值 最后对于每个询问二分最大logo的半径mid,这样问题就转化成判定是否存在半径大于等于mid的logo,在(x1+mid-1,y1+mid-1,x2-mid,y2- 阅读全文
posted @ 2020-02-29 21:31 jrltx 阅读(198) 评论(0) 推荐(0)
摘要:题意:求一个序列中本质不同的连续子序列的最大值之和。 由于要求“本质不同”,所以后缀数组就派上用场了,可以从小到大枚举每个后缀,对于每个sa[i],从sa[i]+ht[i]开始枚举(ht[0]=0),这样就能不重复不遗漏地枚举出每一个子串。 但是这样做,最坏情况仍旧是$O(n^2)$的,可能会被卡掉 阅读全文
posted @ 2019-10-15 21:22 jrltx 阅读(422) 评论(0) 推荐(0)
摘要:题意:有一个长度为n的序列,让你把它分成k段,段内元素取or,段间取and,求能够得到的最大值。 这个算法是我和xz场上yy出来的,然而时间不够了没写出来,而且时间复杂度是$O(nlogn+nlogA)$的比官方题解都要低...(但是常数大了点) 设最大值为ans,我们假设S&ans=S,看看S能否 阅读全文
posted @ 2019-09-13 22:08 jrltx 阅读(318) 评论(0) 推荐(0)