社区
数据结构与算法
帖子详情
把一些矩形拼成一个大矩形,要求留空最少
happycock
2007-08-14 08:31:27
把一些矩形拼成一个大矩形,矩形可以旋转,要求拼后的矩形面积最小,也就是留的空白最少。拼后的矩形没有尺寸限制,如果有多解,最好是长宽接近。
感觉上和下料问题有些区别,因为是尺寸不受限的,不知道这样是会增加复杂度,还是降低复杂度。
如果是限制一维的长或者宽呢,就是长或宽定长,令一维可以增长。
...全文
662
11
打赏
收藏
把一些矩形拼成一个大矩形,要求留空最少
把一些矩形拼成一个大矩形,矩形可以旋转,要求拼后的矩形面积最小,也就是留的空白最少。拼后的矩形没有尺寸限制,如果有多解,最好是长宽接近。 感觉上和下料问题有些区别,因为是尺寸不受限的,不知道这样是会增加复杂度,还是降低复杂度。 如果是限制一维的长或者宽呢,就是长或宽定长,令一维可以增长。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
happycock
2007-09-29
打赏
举报
回复
CSDN催着要结贴,什么事吗。
超级大笨狼
2007-09-27
打赏
举报
回复
自动排版打印的问题,我也需要这个,我有2万歌词,想打印,不过最后还是放弃了,因为至少需要3000张纸,那么多看起来也不方便.
happycock
2007-09-24
打赏
举报
回复
有个近似解就可以了,问题的规模不会太大,大概在N=30~50之间吧。留边可以在任意位置,不存在一刀切的要求。
kaishui_gu
2007-09-24
打赏
举报
回复
贪婪算法的策略很多,近似程度也不同,想到一个简单的:
1.对所有的矩形进行排序(按长度W),从大到小:A[N]
这样得到一个很粗糙的大矩形,面积为:A[1].W*(A[1].Height+...+A[N].Height)
2.用非常简单的方式来优化这个大矩形:
从最小的矩形开始(即A[N]),按循序填充到大矩形的空白位置(从A[2]开始)
举例来说:
a:W=20,H=10;b:W=10,H=9;c:W=5,H=4;d:W=4,H=4;
1.上面的矩形排好序,得到的矩形面积为:20*(10+9+4+4)=540
2.将d填充到b中(当然,如果添不下,就试试c,一直向下),由于b有10的空位,所以可以填充,填充之后的矩形面积为:20*(10+9+4)=460;
将c填充到b中,同样可以填充:这时的面积为:20*(10+9)=380;
这种算法比较粗糙,应该优化一下,LZ可以自己想想其他的
kaishui_gu
2007-09-01
打赏
举报
回复
太复杂,用贪婪算法算个近似解倒有可能,最优解太难了
flyingdog
2007-09-01
打赏
举报
回复
是np问题。但是有很多相关策略可以找到近试最优值。
你可以参看intel多核比赛复赛第二题。和这个要求差不多。
kaishui_gu
2007-08-27
打赏
举报
回复
不知道LZ所说的留空白是指在大矩形内部还是可以在边上留空白?
zzwu
2007-08-25
打赏
举报
回复
是一个难题
iatsbg
2007-08-25
打赏
举报
回复
(1)用回溯法解决“这些矩形能否放在一个m*n的大矩形里”的问题。
(2)用枚举法和(1)解决“这些矩形能否放在一个面积为S的大矩形里”的问题。
(3)用二分法和(2)解决“能容下这些矩形的大矩形面积最小为多少”的问题。
好复杂啊~
syy64
2007-08-14
打赏
举报
回复
面积最小的话,也就是说尽量拼成正方形。
happycock
2007-08-14
打赏
举报
回复
这个问题的极限解是有的,就是所有矩形的面积和。但显然这个极限解是一点空白都没有。
JVM相关知识简单理解
JVM JVM 是什么? JVM 全称 Java Virtual Mechinal,即 Java 虚拟机。JVM 是驻留于内存中的抽象计算机,可以理解为
一个
虚拟的计算机,它是通过在真实计算机上仿真模拟各种计算机功能来实现的,具有处理器、堆栈、寄存器等完善的硬件架构以及相应的指令系统,通过抽象 CPU 和操作系统结构,使代码的执行与主机硬件、主机操作系统无关。 JVM 关注的是 Java 字节码文件(类文件 .class),Java 字节码文件由 JVM 指令集、符号表以及一些补充信息组成。JVM 的主要工作
画图理解JVM相关内容
而且,instanceKlass拥有class对象的指针,实例可以通过instanceKlass找到class对象,只是需要两次指针跳跃,所以上图绘制方式其实也并无太大问题。此外,在移动过程中,需要。在控制台上通过指令,查看不到最全面的信息,通过Tools->inspector创建可视化窗口,可以查看最全面的信息,具体如下。当需要进行内存清除时,操作异常容易,因为两个区间在同一时刻只有
一个
区间存在使用的对象,因此只需要。标记-复制算法,将内存划分为等大的两个空间,
一个
空间用于存放对象,另
一个
空间用于预留。
JVM参数相关理解
系统在上线前的综合调优思路:1、业务预估:根据预期的并发量、平均每个任务的内存需求大小,然后评估需要几台机器来承载,每台机器需要什么样的配置。2、容量预估:根据系统的任务处理速度,然后合理分配Eden、Surivior区大小,老年代的内存大小。3、回收器选型:响应优先的系统,建议采用ParNew+CMS回收器;吞吐优先、多核大内存(heap size≥8G)服务,建议采用G1回收器。
JVM 内存模型相关理解
一、JVM 启动流程 执行 java xxx 或 javaw xxx 命令 从系统环境变量或当前路径中找到和 java 或 javaw 关联的程序并运行 java 或 javaw 程序找到 jvm.cfg 配置文件并且对 jvm 进行初始化 找到 xxx 文件的 main 方法后开始运行 二、JVM 内存模型(粗略) 图 1 图 1 首先说明一下:    &n...
JVM相关知识整理与理解
JVM相关知识整理与理解欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成
一个
适合你的列表创建
一个
表格设定内容居中、居左、居右SmartyPants创建
一个
自定义列表如何创建
一个
注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用...
数据结构与算法
33,025
社区成员
35,334
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章