Problem Description
In this problem, you are given a string s and q queries.
For each query, you should answer that when all distinct substrings of string s were sorted lexicographically, which ...
分类:
其他好文 时间:
2014-10-03 16:56:54
阅读次数:
249
RMQ with Shifts
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述
In the traditional RMQ (Range Minimum Query) problem, we have a static array A. Then for each query (L, R) (L
In this pro...
分类:
其他好文 时间:
2014-09-30 00:51:11
阅读次数:
451
本题是利用后缀数组求最长的回文串。方法是将字符串反转之后拼接到原来的字符串末尾,中间用一个没有出现过的分割符隔开,原因是防止最长公共前缀横跨两个串。之后分别枚举回文串的中点,以及回文串长度是奇数还是偶数,看一下对应位置的最长公共前缀即可。这里的求最长公共前缀要处理RMQ问题,线段树固然可以解决,但是...
分类:
其他好文 时间:
2014-09-26 22:10:08
阅读次数:
142
UVA12299 - RMQ with Shifts(线段树)
题目链接
题目大意:要求你查询某一段的最小值,但是还有一个shift操作,将(a0, a1, a2, a3..ak)这个K个位置的数字互相对掉,例如a0位置的值变成a1,a1位置的值变成a2...ak位置的值变成a0.
解题思路:因为shift后面的操作数最多30个,所以可以用线段树单点修改。复杂度n*logn。用s...
分类:
其他好文 时间:
2014-09-26 10:40:58
阅读次数:
199
链接:http://poj.org/problem?id=3368
题意:给你一个序列,n个数,序列是有序的,q个询问,问区间(l,r)中出现频率最高的数字出现了几次。
思路:因为序列是有序的,可以把序列相同部分合并,然后存成一个新的数组,并增加一个值num表示数字出现的次数,找区间(l,r)中出现频率最高的数字,就是找num的最大值了,区间最大值,RMQ可做,线段树也可做,我用RMQ...
分类:
其他好文 时间:
2014-09-25 14:14:28
阅读次数:
147
Uva 12299 RMQ with Shifts(线段树 + 单点更新)题意: 对于给定的序列 x[i]给出一个操作 shift(a,b,c,d,e) 对应的是将 x[a]与x[b] x[b]与x[c] 这样相邻的两两交换For example, ifA={6,2, 4,8,5, 1,4}then...
分类:
其他好文 时间:
2014-09-25 02:49:27
阅读次数:
392
士兵杀敌(三)
时间限制:2000 ms | 内存限制:65535 KB
难度:5
描述
南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进行比较,计算出两个人的杀敌数差值,用这种方法一方面能鼓舞杀敌数高的人,另一方面也算是批评杀敌数低的人,起到了很好的效果。
所以,南将军经常问军师小工第i号士兵到第j号...
分类:
其他好文 时间:
2014-09-23 23:03:09
阅读次数:
184
RMQ和线段树都能过,而且时间都500MS左右。
这道题主要还是思路的问题,特殊处理l,r所在的区间,中间的区间就用线段树区间求最值解决,想上去了代码很好实现。
RMQ代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using name...
分类:
其他好文 时间:
2014-09-22 20:35:53
阅读次数:
127
前言 RMQ: 数组 a0, a1, a2,..., an-1, 中求随意区间 a[i+1], a[i+2], ..., a[i+k] 的最小值 LCA: 求二叉树中两个节点的最低公共祖先 本文将证明这两个问题能够相互归约为还有一个问题。证明 先通过一个简单的样例来说明问题。见下图: 求 [7...
分类:
其他好文 时间:
2014-09-18 16:24:44
阅读次数:
144