NOIP2002矩形覆盖

2014年1月13日3,4121

题目描述 Description

在平面上有 n 个点(n <= 50),每个点用一对整数坐标表示。例如:当 n=4 时,4个点的坐标分另为:p1(1,1),p2(2,2),p3(3,6),P4(0,7)

这些点可以用 k 个矩形(1<=k<4)全部覆盖,矩形的边平行于坐标轴。当 k=2 时,可用如图二的两个矩形 sl,s2 覆盖,s1,s2 面积和为 4。问题是当 n 个点坐标和 k 给出后,怎样才能使得覆盖所有点的 k 个矩形的面积之和为最小呢。约定:覆盖一个点的矩形面积为 0;覆盖平行于坐标轴直线上点的矩形面积也为0。各个矩形必须完全分开(边线与顶点也都不能重合)。

输入描述 Input Description

n k
xl y1

x2 y2
… …
xn yn (0<=xi,yi<=500)

输出描述 Output Description

一个整数,即满足条件的最小的矩形面积之和。

样例输入 Sample Input

4 2
1 1
2 2
3 6
0 7

样例输出 Sample Output

4

数据范围及提示 Data Size & Hint

k<4

官方是k<=4,但是标程解法在k=4时是有反例的。官方的数据也没有出现k=4的情况

代码

乍一看好像是对的,不过是有反例的,但是由于数据太水,你懂得

还可以按x,y进行排序后做俩次取最小值。。。。我无法证明其正确性,这算高级骗分么。。

还是搜索比较保险

 

  • Albert2015年2月7日 下午2:21 回复

    如果点的数量是50,,,那么就会超时,,,博主的代码是跟点的个数相关的。。。
    本人苟蒻。。。。借博主代码一测,,结果超时。。。

    #1