2026秋季上学期第二周
周二
sort的cmp排序未定义
在sort的时候,如果我们排序的数据结构如pair,不能用a比较bcmp传出的是1,然后用b和a比较也是传出的1,假如我们需要一些区间按照右端点降序排序,就不能只是写a.second <= b.second,如果是这样的话,我们第一次传入的是(1,5)和(2,5)会返回1,第二次传入(2,5)和(1,5),同样也会返回1,这就会导致sort的未定义,在评测机上显示就是RE
周三
位运算异或和与
a+b = a^b + 2*a&b
二进制加法可以拆分成无进位和与进位两部分,a^b是这一位不考虑进位的两数相加的本位结果,而对于某一位上的&只有两个数字都是1的时候结果才是1,左移1也就是乘2之后就是这一位的进位结果,所以一个加法可以拆分成异或加上与操作左移1
二进制掩码
二进制掩码是对于某个数,为1的位上掩码可以为1可以为0,但是这位为0掩码必须为0。比如1010,他的掩码就有1000,0000,1010,0010等。
浙公网安备 33010602011771号