随笔分类 -  算法—RMQ区间最值

摘要:题意 "题目链接" Sol 毒瘤SDOI 终于有一道我会做的题啦qwq 首先,本质不同的子串的个数 $ = \frac{n(n + 1)}{2} \sum height[i]$ 把原串翻转过来,每次就相当于添加一个后缀 然后直接用set xjb维护一下前驱后继就行了 时间复杂度:$O(nlogn)$ 阅读全文
posted @ 2018-11-28 18:37 自为风月马前卒 阅读(266) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol 这题打死我也不会想到后缀数组的,应该会全程想AC自动机之类的吧 但知道这题能用后缀数组做之后应该就不是那么难了 首先把$S$和$S0$拼到一起跑,求出Height数组 暴力枚举每个后缀是否能成为答案。 具体来说,每次比较当前后缀和$S_0$的lcp,如果长度$ using 阅读全文
posted @ 2018-11-28 16:50 自为风月马前卒 阅读(357) 评论(0) 推荐(0)
摘要:发现自己学的一直都是假的ST表QWQ。 ST表 ST表的功能很简单 它是解决RMQ问题(区间最值问题)的一种强有力的工具 它可以做到$O(nlogn)$预处理,$O(1)$查询最值 算法 ST表是利用的是倍增的思想 拿最大值来说 我们用$Max[i][j]$表示,从$i$位置开始的$2^j$个数中的 阅读全文
posted @ 2018-03-17 09:50 自为风月马前卒 阅读(16576) 评论(21) 推荐(86)
摘要:题目背景 题目描述: 每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序列排队. 有一天, John 决定让一些牛们玩一场飞盘比赛. 他准备找一群在对列中为置连续的牛来进行比赛. 但是为了避免水平悬殊,牛的身高不应该相差太大. John 准备了Q (1 <= Q <= 1 阅读全文
posted @ 2017-10-22 19:05 自为风月马前卒 阅读(225) 评论(0) 推荐(0)
摘要:题目描述 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小。 输入输出格式 输入格式: 第一行为3个整数,分别表示a,b,n的值 第二行至第a+1行每行为b个非负整数,表示矩阵中相应位置上的数。每行相邻两数之间用一空格分隔。 输出格式: 阅读全文
posted @ 2017-07-09 19:08 自为风月马前卒 阅读(273) 评论(0) 推荐(0)
摘要:Description 在每天挤奶的时候,农民约翰的N头牛(1≤n≤50000)总是排成一列。有一天,约翰决定与他的牛们一起玩一个极限飞盘游戏。为了简单起见,他将从奶牛队列里面选一定范围内的奶牛来玩这个游戏。然而所有的牛对这个游戏都很感兴趣。农民约翰列出了Q份名单(1≤Q≤200000)和每个奶牛的 阅读全文
posted @ 2017-06-27 20:36 自为风月马前卒 阅读(1205) 评论(0) 推荐(3)
摘要:一.概述 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j之间的最小/大值。这两个问题是在实际应用中经常遇到的问题,下面介绍一下解决这两种问题的比较高效 阅读全文
posted @ 2017-05-18 17:47 自为风月马前卒 阅读(331) 评论(0) 推荐(1)

Contact with me