
RMQ
huanghongxun
这个作者很懒,什么都没留下…
展开
-
BZOJ 2006|NOI 2010|超级钢琴|堆|RMQ
对于所有的子序列,如果我们固定右端点,那么左端点就有一个区间了(这种想法和4268有点像?),那么如果我们取了一个左端点j能让区间值最大,那么就取了,左区间从[l,r][l,r]分裂为[l,j−1][l,j-1]和[j+1,r][j+1,r]。 那么取最大的k个就是答案了。至于怎么确定最大的左端点,显然通过后缀和+RMQ就可以实现了。 [r+1,n]对于所有的左端点都是一样的,所以有没有对于我们原创 2016-04-29 11:49:43 · 787 阅读 · 1 评论 -
BZOJ 3784|树上的路径|点分治|堆|RMQ
求前M个路径,使路径权最小。和NOI 2010 超级钢琴类似。。。#include <queue> #include <cstdio> #include <cstring> #define FOR(i,j,k) for(i=j;i<=k;++i) const int N = 50005, M = N * 2, S = 2000005; using namespace std; int bin[20]原创 2016-04-29 12:25:46 · 739 阅读 · 0 评论 -
BZOJ 3230 相似子串|后缀数组|RMQ
良心提示。 f=两子串的最长公共前缀后缀长度平方和的最大值。 因此开2个后缀数组分别处理前后缀。 而且得开long long..对于每个子串,其排名与后缀的排名有关,因此对于查询的子串我们找到产生该子串的后缀,而我们可以通过计算前i个后缀产生了多少个子串,并查询之得(STL大法好)。于是RMQ解决之。代码稍后贴…3230: 相似子串Time Limit: 20 Sec Memory Limi原创 2016-02-15 12:11:43 · 923 阅读 · 0 评论