A Magic Lamp
Time Limit: 2000/1000 MS (Java/Others) Memory Limit:
32768/32768 K (Java/Others)
Problem Descripti...
分类:
其他好文 时间:
2014-08-05 11:23:19
阅读次数:
240
RT,一个ppt里看到的题,不过没讲做法。百度上基本搜不到。自己想了个做法,理论上可行,复杂度也是O(nlogn)。首先,做一次RMQ,求区间最大值。对于任意一个数s[i],可以用logn的时间求出他右边第一个比他大的数:RMQ[i][j]表示从s[i]开始的2^j个数中的最大值。对于确定的i,RM...
分类:
其他好文 时间:
2014-08-05 00:15:58
阅读次数:
302
UVA 12299 - RMQ with Shifts
题目链接
题意:给定一个数组,两种操作,每次query操作输出区间最小值,每次shift操作把选中位置每个位置向左移一位,最左的到最后去
思路:线段树,shift操作中位置个数不会超过30个,那么直接当作点修改来做,那么就变成了简单的线段树了
代码:
#include
#include
#include
u...
分类:
其他好文 时间:
2014-07-30 20:56:34
阅读次数:
331
Frequent values
TimeLimit:3000Ms
You are given a sequence of n integers a1 , a2 , ... , an in non-decreasing order. In addition to that, you are given several queries consisting of indices...
分类:
其他好文 时间:
2014-07-30 20:51:23
阅读次数:
507
题目链接:http://poj.org/problem?id=3264
题目大意:就是给你一串数,问你最大数和最小数的差值。。。。。。。
思路:最基本的线段树,只需要建树和查询,修改都省啦,但是查询要写两个,一个查询最大值,一个查询最小值。。。。。。然后就能AC掉。。。。。但是话说poj把它分类到RMQ中。。。。
code:
#include
#include
#i...
分类:
其他好文 时间:
2014-07-29 22:03:22
阅读次数:
404
求区间内最大数和最小数的差,用两棵线段树,一个维护区间最大值,一个维护区间最小值。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define QUADMEM...
分类:
其他好文 时间:
2014-07-29 22:00:02
阅读次数:
259
UVA 11235 - Frequent values
题目链接
题意:给定一个升序数列,每次询问一个区间[l, r],求出其中相同数字最大的个数
思路:RMQ,由于是升序,所以数字大小相同的必然连在一块,先预处理出一共有多少段,每段包含多少个数字,和原数组中每个位置对应哪一段,最左边位置和最右边位置,然后每次询问的时候,可以把询问[L, R]的时候可以分成三段:
1、L到r[...
分类:
其他好文 时间:
2014-07-29 14:38:28
阅读次数:
192
BestCoder Round #2第一题TIANKENG’s restaurant...
分类:
其他好文 时间:
2014-07-28 16:28:13
阅读次数:
260
Connections between cities Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4425 Accepted Submis...
分类:
其他好文 时间:
2014-07-28 15:35:53
阅读次数:
380
题目大意就是在给出的串中找出一段连续数字,使得 这一段的和 乘上 这一段最小的数 的结果最大。可以用rmq做。每次区间找当中最小的数,算出值并记录位置。然后再递推它的左右区间。不过- -,一开始用深搜递推RE了。栈空间不够了,然后慢慢优化,最后还是ac了。貌似这一题是用单调栈做的,还可以用查并集做。...
分类:
其他好文 时间:
2014-07-22 22:41:53
阅读次数:
280