E. Count The Rectangles [思维+优先队列+树状数组]
传送门
题意:给出n(n<=5000)条水平和垂直的线段,计算共形成多少个矩形
题解:枚举矩形的上下边即枚举水平线段,显然如果有x个垂直线段与这两条边同时相交那么就形成了x*(x-1)/2个矩形,如果直接暴力枚举垂直线段,那么复杂度为O(n^3),复杂度爆表是因为垂直线段这样被重复计算贡献,思考能不能快速地计算贡献,对于纵坐标为(y1,y2)的垂直线段,其能产生贡献的区间就是下边界为>...
原创
2019-10-18 15:07:58 ·
247 阅读 ·
1 评论