摘要: 第一次写树状数组,感觉那个lowbit位运算用的相当厉害。因为-x相当于把x的二进制位取反然后整体再加上1,所以最右边的一个1以及末尾的0,取反加一以后不变。比如1000取反是0111加一得到1000,这样与运算以后不变最右边的1左边部分取反,加一不会影响左半部分,所以与运算以后全部为0对于这道题来... 阅读全文
posted @ 2015-03-16 20:15 AOQNRMGYXLMV 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 考虑一个简单的问题,两个长度为n的有序数组A和B,从每个数组中各选出一个数相加,共n2中情况,求最小的n个数。将这n2个数拆成n个有序表:A1+B1≤A1+B2≤...A2+B1≤A2+B2≤......An+B1≤An+B2≤...然后用优先队列合并成一个有序表即可。队列中需要记录两个数的和s,以... 阅读全文
posted @ 2015-03-16 15:10 AOQNRMGYXLMV 阅读(327) 评论(0) 推荐(0) 编辑