(一)首先明确匈牙利算法是干嘛滴? 匈牙利算法是解决二部图最大匹配问题滴。 (二)算法的核心思想:不断寻找增广路径,每找到一条增广路径,就通过异或操作使匹配边数加一,直到找不到增广路径,算法结束。 (三)算法的基本步骤: (1)任取二部图G(X,Y)的匹配M,若M饱和X,则停止。若M不能饱和X,则取 ...
分类:
编程语言 时间:
2017-04-24 23:23:20
阅读次数:
483
平衡树 平衡树 神奇的cxlove有一颗平衡树,其树之神奇无法用语言来描述 OrzOrz。 这棵树支持3种操作: 1、加入一个数到树中,维护平衡树的合法性; 2、给一个数X,用O(1)的时间求出来树中的数Y使得 Y ^ X 最大(异或操作, Pascal 写作 xor , 0 ^ 0 = 0 , 1 ...
分类:
其他好文 时间:
2017-04-22 17:39:27
阅读次数:
189
八、逻辑运算指令 数字在计算机中以二进制存储,每个位数字为0或者1,当两个二进制数字进行逻辑按位&,逻辑按位|,逻辑异或^操作, 可以采用汇编语言提供的逻辑运算指令and,or, xor,not等指令。 and指令: C语言&操作,将0110&1101得出结果为0100 C语言代码为 汇编语言高级指 ...
分类:
编程语言 时间:
2017-04-04 15:59:56
阅读次数:
206
题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 【思路】 首先看十进制是如何做的: 5+7=12,三步走第一步:相加各位的值,不算进位,得到2。第二步:计算进位值,得到10. 如果这一步的进位值为0,那么第一步得到的值就是最终结果。第三步:重复上述两步,只是 ...
分类:
其他好文 时间:
2017-03-12 20:03:09
阅读次数:
190
基本知识: & 位与操作 | 位或操作 ^ 按位异或操作 ~ 位非操作 计算机中数字有原码,反码,补码三种存储格式,通常都是补码形式; 一个正数的原码,反码和补码相同;一个负数,符号位为1,其余各位对原码按位取反,然后加1; 技巧总结: 1、n & (n - 1)可以去掉n位表示中的最后一个1,利用 ...
分类:
其他好文 时间:
2017-03-07 08:11:51
阅读次数:
154
BZOJ 1036: [ZJOI2008] 树的统计 Count ——模板> HDU 3966 Aragorn’s Story ——模板> NOI2015 软件包管理器——简单> BZOJ 2243: [SDOI2011] 染色——线段树操作> BZOJ 3531: [Sdoi2014] 旅行——动 ...
分类:
其他好文 时间:
2017-03-04 19:54:26
阅读次数:
179
位运算符 在Java中所有的数据都是以二进制数据的形式进行运算的,即如果是一个int型变量,要采用位运算时则必须将其变为二进制数据;每一 位二进制进行与、或、异或操作的结果如下: 运行结果:2,7,5 在计算机的数据表示中只定义了正数的表示形式,并没有定义负数的表示形式,所以,负数一般都用补码的形式 ...
分类:
编程语言 时间:
2017-02-16 23:07:56
阅读次数:
277
计算机怎么实现加法?今天学习了一下,主要是根据电子电路的特性制定一套规则来模仿人类的加法并最终实现。 既然是实现人类的十进制加法,就得先回顾下我们自己的加法法则。 先看看十进制加法 : 122 + 78 = 200 对于十进制运算我们知道,进行加法时,低位满10要向高位进位,二进制改成满2进位即可, ...
分类:
其他好文 时间:
2017-01-25 17:50:12
阅读次数:
289
为什么需要重构 之前的代码有很多松散的模块组合在一起。在把 Zobrist 集成进去时,会发现全部需要走棋的操作其实都需要进行一次 Zobrist 异或操作。另外在逻辑上,其实很多模块都是可以合并到同一个类的,所以这次把代码进行了一次大的重构。所以如果发现博客说的一些模块找不到了也是很正常的,因为大 ...
分类:
编程语言 时间:
2016-10-21 15:51:52
阅读次数:
186
逻辑运算:与&、或|、非"异或与:只要有一个为假,结果一定为假或:只要有一个为真,结果一定为真1:真0:假1、与&1&0=00&0=01&1=10&1=02、或0|1=10|0=01|1=11|0=13、非!!真=假!假=真4、异或操作数相同则为假,操作数不同则为真0异或1=真1异或0=真0..
分类:
系统相关 时间:
2016-10-18 23:47:12
阅读次数:
662