USACO 3.1.4 Shaping Regions(二)
i--)
cover(x1[i] , y1[i] , x2[i] , y2[i] , color[i] , i+1);
for(int i = 1 ; i <= 2500 ; i++ )
if(cnt[i])
fout << i << ' ' << cnt[i] << endl;
return 0;
}
需要注意的是,如果我们分裂矩形分的不好,有可能会造成重复。矩形二在矩形一的左下方有重复,如果按照两条交线分的话,那么交线中间的部分就重复了。因此我们要事先确定分法。这里,我们约定按照下图来划分分割界线
当下面的矩形的上边界高于上面的矩形时,我们用1的分法。这个时候下面的矩形如果有2这部分的话,把它交给右边界大于上面的情况来处理。以此来避免重复。