//===========================================
//segment tree
//final version
//by kevin_samuel(fenice)苏州大学孙俊彦
#include
#include
#include
using namespace std;
#define MAXN 100
#define INF 0x3ffff...
分类:
其他好文 时间:
2015-08-10 20:10:50
阅读次数:
92
区间最小值(2)
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 26 Accepted Submission(s) : 9
Font: Times New Roman | Verdana | Georgia
Fo...
分类:
编程语言 时间:
2015-08-10 20:10:49
阅读次数:
164
题目链接:点击进入
其实这种动态查询区间最大最小值的题目,解法是有很多的,像是线段树和树状数组都是可以做的。ST算法效率和上面两种是一样的,但是编码更为简单。
ST算法是一种利用了递推思想进行计算的算法,令dp(i,j)表示从i开始长度为2^j的一段元素中的最小值,则dp(i,j)=min(dp(i,j-1),dp(i+2^(j-1),j-1))。这是求区间最小值的递归关系,其实求区间最大值也是...
分类:
编程语言 时间:
2015-08-08 12:05:44
阅读次数:
115
题目链接:Magician
题面:
Magician
Time Limit: 18000/9000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1911 Accepted Submission(s): 549
Problem Descript...
分类:
其他好文 时间:
2015-08-01 14:15:24
阅读次数:
99
下午比赛的时候写搓了,晚上重写一次就过了,o(╯□╰)o。思路:按照字典序贪心,用线段树来维护区间最值,用set来维护求出答案的封闭区间。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7...
分类:
其他好文 时间:
2015-07-30 21:15:12
阅读次数:
154
地址:http://blog.csdn.net/z287438743z/article/details/8132806RMQ(Range Minimum/Maximum Query)问题就是求区间最值问题。这里要仔细分析的是ST算法,它可以做到O(nlogn)的预处理,O(1)回答每个询问。网上看了...
分类:
编程语言 时间:
2015-07-30 11:10:53
阅读次数:
155
MagicianTime Limit: 18000/9000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1613Accepted Submission(s): 470Problem De...
分类:
其他好文 时间:
2015-07-30 00:36:10
阅读次数:
149
T组数据
N个数字,M次操作
op=0:找出L-R区间内的最大‘值’
op=1:把a位置的数字换成b
对最大‘值’的定义:取区间内的最大子序列,需要保证子序列的下标为奇偶交替的
用线段树分别记录每个区间的
ee:以偶数下标开始偶数下标结束的最大和
eo:以偶数下标开始奇数下标结束的最大和
oe:以奇数下标开始偶数下标结束的最大和
oo:以奇数下标开始奇数下标结束的最大和
...
分类:
其他好文 时间:
2015-07-28 18:42:04
阅读次数:
122
PS:介绍:http://blog.csdn.net/liang5630/article/details/7917702RMQ算法。是一个高速求区间最值的离线算法,预处理时间复杂度O(n*log(n))。查询O(1)。所以是一个非常高速的算法,当然这个问题用线段树相同可以解决。1、求区间的最大值和最...
分类:
其他好文 时间:
2015-07-27 14:46:43
阅读次数:
126
题意:一个数列,求分别以每个元素为首位时(循环),前缀和都非负的序列个数
分析:
首先是个循环序列问题,所以要做处理:把序列复制一遍变成2*n的序列,这样任意一个长度为n的区间就是一种序列,共n种
然后求前缀和就可以用sum[j]-sum[i-1],这个式子表示以第i的元素为首位的序列,然后以第j个元素结尾的前缀和。同一个序列的不同结尾的前缀和每次都是减sum[i-1],只有sum[j]不同...
分类:
其他好文 时间:
2015-07-27 00:21:16
阅读次数:
106