最新消息:

信息学奥赛题库- 【02NOIP提高组】矩形覆盖

C++ 少儿编程 1221浏览 0评论

【题目描述】

在平面上有n个点(n≤100),每个点用一对整数坐标来表示。例如:当n=4时,4个点的坐标分别为:P1(1,1),P2(2,2),P3(6,3),P4(7,0)

这些点可以用k个矩形(k<4)全部覆盖,矩形的边平行于坐标轴。如图一,当k=2是,可用如图二的两个矩形s1,s2覆盖,s1,s2面积和为4。问题是当n个点坐标和k给出后,怎样才能使得覆盖所有点的k个矩形的面积之和为最小呢。约定:

◇ 覆盖一个点的矩形面积为0;

◇ 覆盖平行于坐标轴直线上点的矩形面积也为0;

◇ 各个矩形间必须完全分开(边线也不能重合);

【输入】

第一行为n和k,接下来为n行,每行两个数,中间用空格隔开,且0≤xi,yi≤500

【输出】

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

【输入样例】

4 2
1 1
2 2
6 3
7 0

【输出样例】

4

您必须 登录 才能发表评论!