这题就是一个矩阵分割,因为之前做过USACO上类似的一题,所以最开始就看了这题
矩阵分割,有多种情况,具体可以参考我的USACO 3.1.4 Shaping Regions 搜索+矩形切割
但这题略有不同,USACO上面是颜色覆盖,这里是颜色相加,所以对于相交的区域不能那个直接计算面积,还要继续递推直到最后一个矩形
但有一个问题,矩形太多,递推超时,注意到颜色只有三种,所以我们可以对颜色进行一次一次排序(让R,G,B顺序),如果到分割第t个矩形时,当前所加的颜色含有第t个矩形的颜色,则我们可以直接跳转到下一个颜色区域,这样就可以避免重复搜索
还有一个问题,就是颜色的处理,因为颜色的相加,可以用位运算来解决,R-1,G-2,B-4,这样就对颜色的相加转化成或运算,具体可看我的代码(刚用我的代码提交了下,发现不论时间还是空间排行暂时第一,第一次啊!)
1 |
|