摘要:题目大意比较简单,就是求一堆(二元组)的异或和。 思路:按位考虑,如果说第k位为1的话,那么一定有奇数个(二元组)在该位为1。二元组内的数是相加的,相加是可以进位的。所以第k位是0还是1,至于k为后边的数有关,所以我们直接(1<<(k+1))取模。取模后每个数的取值范围就是[0,2^(k+1)-1]
阅读全文
随笔分类 - 算法----优雅的二进制
摘要:题目大意比较简单,就是求一堆(二元组)的异或和。 思路:按位考虑,如果说第k位为1的话,那么一定有奇数个(二元组)在该位为1。二元组内的数是相加的,相加是可以进位的。所以第k位是0还是1,至于k为后边的数有关,所以我们直接(1<<(k+1))取模。取模后每个数的取值范围就是[0,2^(k+1)-1]
阅读全文
摘要:题目大意:切割图形,给你一个非0即1的矩阵,将它切割成多个长方形,使每个小长方形中1的个数不得多于k个,切割的规则,要么切一整行,要么是一整列、 题解: 二进制枚举。 注意行数最大才是10。用二进制枚举切割某一行,然后在枚举每一列是否需要切割。时间复杂度O(2^h*m) code: #include
阅读全文
|