第二题还是没什么思路!

zillfeagle 2007-07-26 09:41:03
Some hints?
...全文
206 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
whycadi 2007-07-26
  • 打赏
  • 举报
回复
我目前的做法:假设坐标轴为向右X,向下Y
1 第一个顶着0,0放,每放一个进去产生两个新的顶点,占用一个顶点。新顶点的产生为其右下角向上和左延伸至遇到一条边界
2 把其它的矩形一个一个放下去,其左上角放在一个顶点上
3 每放一次判断新的边界,如果面积已超过已知最小面积,或放不下去就换下一个
4 非正方形的矩形要横、竖放两次
5 基本上是个全排列的放,但是注意避免重复和对称,可以减少很多次。比如你先放下1号,再放2号,再放3号,然后把所以1,2,3……的排列都试遍了,再试1,3,2,那么放2号的时候,你就只要把2号放在放入3号时生成的两个顶点上,因为放在其它的顶点上实际上就重复了。总的说就是逆序的只放到上一个矩形产生的顶点上。 至于避免对称,我现在只能想出第一个只放一个方向这个办法,可能还是会有很多的对称情况出现。
6 如果得到了理论面积的最小值,即所有矩形之和,就结束。
几句话也说不明白。我编了个程序试了下,目前用5个矩形还是可以找到最小解,不过发现了些小错误,还在调试。本人只是编着玩,没有参赛,所以也没怎么认真优化,只求能得到正确结果就好。

568

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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