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
位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。C语言提供的位运算符列表:运算符含义描述&按位与如果两个相应的二进制位都为1,则该位的结果值为1,...
分类:
其他好文 时间:
2014-08-05 09:33:48
阅读次数:
281
Python语言支持以下类型的运算符:算术运算符比较(关系)运算符赋值运算符逻辑运算符位运算符成员运算符身份运算符运算符优先级Python算术运算符以下假设变量a为10,变量b为20:运算符描述实例+加-两个对象相加a+b输出结果30-减-得到负数或是一个数减去另一个数a-b输出结果-10*..
分类:
编程语言 时间:
2014-08-03 23:32:47
阅读次数:
424
//inta=010+10;//0开头是八进制.//0b开头是二进制//0x开头是十六进制//printf("%d",a);//%d打印十进制整数.//%x打印十六进制.(字母小写)%X打印十六进制(字母大写)//%o打印八进制//一个字节又是八位二进制数.//位运算符//按位与&(同为1,则为1,否则为0);//按位或|(同为0,则为..
分类:
其他好文 时间:
2014-07-28 00:31:39
阅读次数:
187
3*2*2=12 0000-0000 0000-0000 0000-0000 0000-0011 向左移动两位,移动后往后面补上两个0,结果为0000-0000 0000-0000 0000-0000 0000-1100------>12,越移越大>> 右移其实就是除以2的移动位数次幂 3 ...
分类:
其他好文 时间:
2014-07-16 21:01:48
阅读次数:
165
第五章 操作符和表达式
这一章如果没做过玩过单片机、汇编的话,读起来可能比较吃力,尤其是在移位运算符、位运算符应用上。另外多注意一下左值和右值的理解。
总结:
算术操作符、赋值操作符、关系操作符、条件操作符。
短路求值(short-circuited evalution):如||这样的二目操作符,如果它的左操作数是真,右操作数便不再求值。带来的后果是如果右操作数的数组下标不...
分类:
其他好文 时间:
2014-07-12 22:42:37
阅读次数:
226
1.6 Object Pascal 的运算符运算符是程序代码中对各种类型的数据进行计算的符号,通常分为算数运算符、逻辑运算符、比较运算符和按位运算符。1.算术运算符Object Pascal 语言的算术运算符,如表1-9 所示。表1-9 Object Pascal 语言算术运算符操作符操作操作数据类...
分类:
其他好文 时间:
2014-07-11 18:55:25
阅读次数:
213
位运算符是在数字底层(即表示数字的 32 个数位)进行操作的。重温整数ECMAScript 整数有两种类型,即有符号整数(允许用正数和负数)和无符号整数(只允许用正数)。在 ECMAScript 中,所有整数字面量默认都是有符号整数,这意味着什么呢?有符号整数使用 31 位表示整数的数值,用第 32...
分类:
其他好文 时间:
2014-07-09 22:46:20
阅读次数:
353
左移运算符(
基本用法
将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
例:a = a
左移1位后a = a *2;
若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。
举例以及困惑
给出下面的程序,大家可以猜一猜结果是什么?
public class MainClass {
public static void main(String[...
分类:
编程语言 时间:
2014-07-09 10:44:30
阅读次数:
356