请教算法:拼图均衡划分问题

dennis101 2010-09-08 11:17:01
问题描述大致如下:
一个m*n大小的拼图,由子矩形块拼接而成,每个矩形块的长、宽均为整数,大小不等,请问如何找到一条划分线(可以是折线),将拼图分成面积尽可能均等的两个子拼图?

谢谢~~
...全文
99 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
绿色夹克衫 2010-09-10
  • 打赏
  • 举报
回复
不好意思,我说01背包的方法是错的,状态压缩后,只能记录一组解,因此只用一组解判断连通性是错的,无视我上面的回答吧!
donkey301 2010-09-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dennis101 的回复:]

谢谢donkey301的回复,这里也有可能出现矩形块比较大的情况,这时有可能误差就比较大,不知道可不可以再改进一下?
另外,我这里需要把划分持续进行下去,划分完以后,我会选择较大的拼图,继续划分,不知道有没有比较好的解决办法,谢谢~
[/Quote]
矩形比较大的话那就先从最大的矩形往两边走。

你小拼图和大拼图的关系是怎么样的?小拼图是大拼图中的一个角吗?
绿色夹克衫 2010-09-08
  • 打赏
  • 举报
回复
恐怕是NP的,小规模的话可以用状态压缩求解。
数不大的话,也可以用整形01背包的方法,求得sum/2范围内的所有解,然后从高到低逐一判断其连通性。
dennis101 2010-09-08
  • 打赏
  • 举报
回复
谢谢donkey301的回复,这里也有可能出现矩形块比较大的情况,这时有可能误差就比较大,不知道可不可以再改进一下?
另外,我这里需要把划分持续进行下去,划分完以后,我会选择较大的拼图,继续划分,不知道有没有比较好的解决办法,谢谢~
donkey301 2010-09-08
  • 打赏
  • 举报
回复
如果矩形相对整个拼图来说很小的话,可以用贪心,就是找一条大概把上下切成一半的划分线。先从左边1/2m附近开始往右划分,每次前进一格计算此时上下面积的值,来决定下一格是往下走还是往上走。

33,009

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧