0x00 砍树 洛谷p1873
简单的二分,注意M的最大值可以到2*10^9,用int 来存储sum可能会溢出,所以用long long
0x01–求区间和
简单的前缀和题,注意10^4 *10^5=10^9,因此前缀和数组可以用int 类型 int最大到2*10^9
0x02–最大加权矩形 洛谷p1719
看完题目第一反应是前缀和,但是这是一个二维数组,所以用二位前缀和。
0x03–“非常男女”计划 洛谷p1114
最开始想着用二分法,但是存在一个问题:假如当前传入judge()函数的值是奇数,那肯定是返回false,因为奇数个人不存在男女相等的情况,导致judge返回false时,不确定最大值是在mid的左边还是右边。
考虑用前缀和,女为-1,男为1,档前缀和数组中两个索引处位置一样时,这中间的男女人数相等,人数为i2-i1。
之后会尝试一下二分法。
0x04–领地选择 洛谷p2004
二维前缀和