首页 新闻 赞助 找找看

请教一个矩形填充算法问题

0
悬赏园豆:30 [待解决问题]

题目:现有一个大矩形,宽为W,高为H;请设计一个算法使用小矩形填充满大矩形,要求传入一个整数数组,数组长度代表小矩形的数量,数组值代表其在大矩形中所占的面积比例,小矩形的面积比例之和为100;不能直接水平或垂直切分。

 

小弟想了半天也没有头绪,请教大神帮忙啊。

复制代码
class Program
{
    static void Main(string[] args)
    {
        new Test().Calculate(new[] {20, 10, 25, 45});
        Console.Read();
    }

    class Test
    {
        private int Width = 500;
        private int Height = 300;

        public void Calculate(int[] array)
        {
            // TODO
        }
    }
}
复制代码
wdwwtzy的主页 wdwwtzy | 初学一级 | 园豆:114
提问于:2018-08-29 00:13
< >
分享
所有回答(1)
0

好像是个 背包问题。每次你都取最大丢进去匹配下,比如第一个长方形,放入小长方形中最大的,然后第一个长方形就被切成2个长方形,这两个长方形以 比重最大的分配,就是两者之比最大的分配(因为长方形切成2个长方形是有2种方案的),无限递归下取就 OK了

_Roy | 园豆:489 (菜鸟二级) | 2018-08-29 13:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册