有这么一道题,请各位大侠帮忙指点指点思路(我初学C语言):
题目:
给定一张大的矩形的纸M*N(0<(M,N)<2,147,483,647)大小,现在要求从这张纸上剪出给定的大小不一的矩形,剪出的矩形边要求与大矩形边平行,求一种剪法使得剪出的矩形的面积总和最大。
输入数据:
第一行为两个数分别为M,N。第二行为一个整数T,代表将来列举的矩形数目,此后一行一个矩形的规格(即大小)。每个矩形只需剪一个,可以不剪。
输出数据:
每一行描述一个剪出的矩形,第一个数代表剪出的是第几个矩形,第二与第三个数为矩形左上角坐标,第四与第五个数为矩形右下角坐标。
输入样例:
50
3
80 45
60 42
30 42
输出样例:
2 0 0 60 42
3 60 0 90 42
注意:如果输出的矩形出现如下情况将算出错:
翦出矩形不是题目输入数据给出的;
剪出的矩形有重合情况。
>> 本文固定链接: http://www.vcgood.com/archives/3150
基本得用到,贪心算法。如果不行,可以考虑动态规划。
具体实现,自己尝试吧。