回 帖 发 新 帖 刷新版面

主题:分正方形问题,我用贪心算法做不出来,请各位帮帮我

【题目】
分正方形问题

有一个M×N(单位:厘米)的长方形(M,N都不大于100),要求把它分成边长是整数厘米的正方形,要求正好分完,并且使分出的正方形个数最少。

我本想用贪心算法做这道题,即每次都分出能分成的最大的正方形,可我发现有些情况就不对。
比如5×6的:
      —— —— —— —— —— —— —— —— —— —— —— ——
     |                                                 |   1×1  |
     |                                                 |         |
                                                        —— ——
     |                                                 |   1×1  |
     |                                                 |         |      
                                                        —— ——
     |                5×5                             |   1×1  |
     |                                                 |         |
                                                        —— ——
     |                                                 |   1×1  |
     |                                                 |         |
                                                        —— ——
     |                                                 |   1×1  |
     |                                                 |         |
      —— —— —— —— —— —— —— —— —— —— —— ——
按我的算法应该分成上图的形状,共6个正方形,可是下图:
      —— —— —— —— —— —— —— —— —— —— —— ——
     |                             |                             |
     |                             |                             |
                                                          
     |           3×3              |         3×3                |
     |                             |                             |
                                              
     |                             |                             |
     |                             |                             |
      —— —— —— —— —— —— —— —— —— —— —— ——                                             
     |                   |                   |                   |
     |                   |                   |                   |  
             2×2                 2×2                2×2
     |                   |                   |                   |
     |                   |                   |                   |
      —— —— —— —— —— —— —— —— —— —— —— ——
却只需要5个正方形。

到底怎么做啊?请各位帮帮我。

回复列表 (共13个回复)

11 楼

K减1

12 楼

不好意思,做不出来!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

13 楼

这个问题很复杂,我再想想......

我来回复

您尚未登录,请登录后再回复。点此登录或注册