2014 ACM/ICPC Asia Regional Contest - B

来源:互联网 发布:windows xp msdn 下载 编辑:程序博客网 时间:2024/05/01 08:52

题目大意:

在坐标轴的第一象限有若干个点,保证点的位置不重复,可以用四个点围一个四边均平行于坐标系X,Y轴的矩形篱笆。要求从给出的若干个点中选出八个点围出两个不相交的(点,边重合也算相交)矩形,并使围出的面积最大,求出这个最大面积。


题目思路:

由于n的范围非常小,而且由左下和右上两个点便可以确定一个矩形。实际上只需要暴力枚举n^4便可以得出所有的矩形组合。这题的坑点在于一种特殊的形状“回”字形,这个时候面积实际上只有外面一个大的矩形篱笆围住的面积,不做特殊处理便会重复运算,现场看很多强校都WA了很多次。

枚举的时候只枚举两个矩形的右下方和左上方的点,然后用map判断下另外两个点存不存在就行。我判断两个矩形篱笆是否重合是用的分别判断两个矩形分别有几个端点在另一个矩形中。如果都是0的话那么就是相离的,总面积是两个矩形的面积和;如果在矩阵中的端点分别为0和4,那么说明一个矩阵在另一个中间,只需要计算大的一个矩阵的面积,特判边重叠的情况即可。其他情况都是相交的,即为不合法的围法。这样求一下最大面积即可。


代码:

(稍后补)

0 0
原创粉丝点击