关于逻辑移位、算术移位可參见迅雷深大笔试题部分。的一道题。曾经看到C++标准上说,移位运算符(>)出界时的行为并不确定:The behavior is undefined if the right operand is negative, orgreater than or equal to the...
分类:
编程语言 时间:
2015-02-03 14:46:36
阅读次数:
131
Sparse Tabel名为稀疏表,又称为ST表,可以在O(1)的时间复杂度下完成查询区间最值,相比线段树和树状数
组,效率提升了不少.ST表本质上是一个很经典的dp,通过预处理完成O(1)的查询.既然是个dp,那我们来看下dp的
定义吧(下面以查询区间最大值为例).
dp[i][j]:表示以i为起点,长度为2^j的区间最值
那么我们很容易得出状态转移方程:...
分类:
其他好文 时间:
2015-02-03 13:25:50
阅读次数:
188
求一个数的最大公约数的三种思路——解题笔记
编程之美上的题目:求一个数的最大公约数。
这道题目有三种解题思路,总结如下:
思路一:
直接使用辗转相除法,这个不多介绍,代码如下:
// 直接辗转相除法
int gcd1(int a, int b)
{
for(int m = a%b; m != 0; m = a%b)
{...
分类:
其他好文 时间:
2015-02-03 11:09:26
阅读次数:
191
位运算可以实现哪些功能
许多时候,我们为了减少算法的时间复杂度,都是推荐使用位运算,今天我们整理一下位运算可以实现哪些功能。
1. 乘除2
左移1位乘以2,左移n位乘以2^n;
右移1位除以2,右移n位除以2^n;
举个例子:
#include
using namespace std;
int main()
{
...
分类:
其他好文 时间:
2015-02-03 11:06:51
阅读次数:
111
Given an array of integers, every element appears three timesexcept for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement itwithout using e...
分类:
编程语言 时间:
2015-02-02 23:15:12
阅读次数:
248
很有意思的题目 IP地址的知识相关 然后本质是一个模拟 涉及很多有趣的位运算 好题
分类:
Web程序 时间:
2015-02-01 12:01:38
阅读次数:
217
来源:http://www.cnblogs.com/ISeeIC/p/4262468.html作者:ISeeIC1. 绝对值 1 int abs( int x ) 2 { 3 int y ; 4 y = x >> 31 ; 5 return y ? ( ~x + 1) : x...
分类:
其他好文 时间:
2015-01-31 17:39:57
阅读次数:
163
1. 绝对值int abs( int x ){ int y ; y = x >> 31 ; return y ? ( ~x + 1) : x;} 任何数与0异或都保持不变,与-1(0xffffffff)异或都取反优化后:int abs( int x ){ int y ; ...
分类:
其他好文 时间:
2015-01-30 17:26:59
阅读次数:
120
经典的状态压缩dp,有几个点要注意
1)必须用三维的状态才能合理的进行状态的转移,用二维的状态约束性不够
2)初始化是必须要同时初始化前两行的所有状态
3)注意位运算的使用。
代码如下:
#include
#include
#include
using namespace std;
int total[1000],cur[110];
int dp[110][200][2...
分类:
其他好文 时间:
2015-01-30 15:54:09
阅读次数:
148
C/C++位操作运算符操作符功能用法~位求反~expr>右移expr1>> expr2&位与expr1 & expr2^位异或expr1^ expr2|位或expr1| expr2例子请参见http://www.cnblogs.com/thujason/archive/2010/07/08/1773...
分类:
编程语言 时间:
2015-01-30 15:13:54
阅读次数:
184