RMQ(Range Minimum/Maximum Query)问题是求区间最值问题。对于长度为 n 的数组 A,进行若干次查询,对于区间 [L,R] 返回数组A中下标在 [L,R] 中的最小(大)值。可以用线段树来解决这个问题,预处理的复杂度是 O(nlogn),查询的复杂度是 O(logn)。更...
分类:
其他好文 时间:
2014-08-08 17:34:26
阅读次数:
200
解题报告
题意:
略
思路:
单点替换,区间最值
#include
#include
#include
#define inf 99999999
using namespace std;
int maxx[808000];
void update(int root,int l,int r,int p,int v)
{
int mid=(l+r)/2;
if(l==...
分类:
其他好文 时间:
2014-08-07 23:09:25
阅读次数:
256
题目大意,N个区间覆盖[T1,T2]及对应的代价S,求从区间M到E的全部覆盖的最小代价是多少。 (1 (0
思路是DP,首先将每个区间按照T2从小到大排序,设dp(k)为从m覆盖到k所需最小代价,则有
dp(T2[i]) = min(dp(T2[i]), {dp(j) + Si, T1[i] - 1 {dp(j)
+ Si, T1[i] - 1
#include
#i...
分类:
其他好文 时间:
2014-08-06 22:56:22
阅读次数:
293
I Hate It
Time Limit: 9000/3000 MS (Java/Others) Memory Limit:
32768/32768 K (Java/Others)
Problem Description
...
分类:
其他好文 时间:
2014-08-06 19:01:13
阅读次数:
287
RMQ算法,是一个快速求区间最值的离线算法,预处理时间复杂度O(n*log(n)),查询O(1),所以是一个很快速的算法,当然这个问题用线段树同样能够解决。
问题:给出n个数ai,让你快速查询某个区间的的最值。
算法分类:DP+位运算
算法分析:这个算法就是基于DP和位运算符,我们用dp【i】【j】表示从第 i 位开始,到第 i + 2^j 位的最大值或者最小值。
...
分类:
其他好文 时间:
2014-08-06 18:58:52
阅读次数:
222
Balanced LineupTime Limit:5000MSMemory Limit:65536KTotal Submissions:34140Accepted:16044Case Time Limit:2000MSDescriptionFor the daily milking, Farmer...
分类:
其他好文 时间:
2014-08-06 14:30:41
阅读次数:
218
5个数求最值时间限制:1000 ms | 内存限制:65535 KB 难度:1描述 设计一个从5个整数中取最小数和最大数的程序输入输入只有一组测试数据,为五个不大于1万的正整数输出输出两个数,第一个为这五个数中的最小值,第二个为这五个数中的最大值,两个数字以空格格开。样例输入1 2 3 4 5样.....
分类:
其他好文 时间:
2014-08-06 01:34:10
阅读次数:
211
一道裸的单调队列,求区间最值问题。线段树8秒多过,单调队列4秒多过。可作为单调队列的学习题目...
分类:
其他好文 时间:
2014-08-05 09:42:39
阅读次数:
495
题意:求一串数字里的中位数。内存为1M。每个数范围是0到2的31次方-1。思路:很容易想到把数字全部读入,然后排序,但是会超内存。用计数排序但是数又太大。由于我们只需要第n/2、n/2+1大(n为偶数)或第(n+1)/2大(n为奇数)。所以可以用优先队列来维护最值,这样只需要存一半元素(n/2+1个...
分类:
其他好文 时间:
2014-08-04 13:29:27
阅读次数:
215
在阅读文章之前,请思考一下:你认为最应该学习的编程语言是什么?看完文章之后,希望你会有个更好的答案~~
有几个人曾问我,最有用的编程语言是什么?或者最应该学习的编程语言语言是什么?
跳过HTML/CSS这些不说,我认为这个问题的答案取决于你想用代码去完成什么工作。
分类:
编程语言 时间:
2014-08-04 08:18:17
阅读次数:
319