最近在研究一些字符串匹配算法,也是由于工作上的需要,强力推荐一本书《柔性字符串匹配》,一本很好的书。网上可以随时搜索到。还是说正题吧。BNDM算法的思想来源于BDM算法思想,类似于shitf-and和kmp之间的区别吧(也不知道是不是准确,有错望大家多指点)。前者都是用位运算模拟后者。好了,那就.....
分类:
其他好文 时间:
2014-08-22 22:26:09
阅读次数:
296
参考:点击打开链接
基本的操作:
and ----- &
or ----- |
取反 ----- ~
异或 ----- ^
同或 ----- ~(^) // 异或后求反
>(右移)
1)再使用链式前向星的时候,为了方便找到出度结点。在一条边添加后,直接添加反向边。正向边的下标为偶数,反向边为奇数。则^可方便找到。(最后一位取反)
2)...
分类:
其他好文 时间:
2014-08-22 16:19:59
阅读次数:
174
1,给定两个整数集合A和B,每个集合都包含20亿个不同整数,请给出快速计算A∩B的算法,算法可使用外存,但是要求占用内存不能超过4GB。答:基本思路:利用bitmap以及位运算来实现。思考过程:整数最大为2的32次方-1;如果每位依次记录一个数,那么需要int的个数是(2的32次方-1)/32=1亿...
分类:
其他好文 时间:
2014-08-22 12:47:16
阅读次数:
159
题意:给n个点,保证图联通,给点相连的距离,求一个最多的点,这些点之间的距离都是相同的。分析:下面的代码是我们房间第一的大神的,写的很简洁,我的思路和他的一样,但是我不知道错哪了。思路是暴力枚举,最多有10个点,先用floyed计算出每两点之间的距离,然后用位运算暴力枚举,枚举每个点是否加入进去,并...
分类:
其他好文 时间:
2014-08-22 12:39:56
阅读次数:
169
1000 1100&取位,置0|置1^置反>生成mask1000 1100取第三位0000 0100第三位置01111 1011第三位置10000 0100第三位置反0000 0100
分类:
其他好文 时间:
2014-08-21 16:33:04
阅读次数:
157
题意:找出现次数不同于其他数的数。
超时了一次,后来知道了位运算。。。长见识了
0^0 =0
0^1=1
1^0=1
1^1=0
0^1^1 = 0
可以发现 任何数异或0还是他本身。
一个数异或另一个数偶数次还是他本身。
代码(位运算都600+ms):
#include
#include
int main()
{
int a, b...
分类:
其他好文 时间:
2014-08-21 11:34:14
阅读次数:
173
分析:实现两个是相加不用四则运算,根据计算机中的运算不用四则运算那么肯定是位运算了。(以下分析来自剑指offer)比如我们计算5+17=22这个结果,世界上,我们可以分为3个步骤计算,第一步各位数相加不进位,此时的结果是12(个位相加不进位是2,十位相加是1),所以结果是12; 第二步做进位,5+7...
分类:
其他好文 时间:
2014-08-20 17:56:02
阅读次数:
232
最近在做一个通过WIFI在手机之间传输文件的功能。需要在手机之间建立一个持久的Socket连接并利用该连接传输数据。可以一次传输一个或多个文件。
在一次传输多个文件时,遇到了一个困难:如何在接收文件时确定文件之间的边界。为了在接收端正确的拆分文件,在传输文件时需要传输每个文件的大小。
我采用了这样一种策略:首先发送每个文件的名称和大小,然后传输文件的内容。
protected v...
分类:
其他好文 时间:
2014-08-20 12:38:52
阅读次数:
353
先贴个BFS+位运算的代码:#include #include #include #include using namespace std;unsigned short q[65536],rear,top,step[65536];//(2^16)-1bool vis[65536];unsigned ...
分类:
其他好文 时间:
2014-08-19 23:46:15
阅读次数:
215
序列号符号名称结合性(与操作数)目数说明1.点从左到右双目( )圆括号从左到右[ ]方括号从左到右2+正号从右到左单目-负号从右到左单目++自增从右到左单目前缀增,后缀增- -自减从右到左前缀减,后缀减~按位非/取补运算从右到左单目!逻辑非从右到左单目“!”不可以与“=”联用3*乘从左到右双目/除从...
分类:
编程语言 时间:
2014-08-19 22:06:15
阅读次数:
256