作者yoco315 (眠月)
站内Prob_Solve
标题Re: [问题] 长方形与正方形
时间Sat Nov 18 14:17:30 2006
※ 引述《march20 ()》之铭言:
: 先来大胆假设一件事:
: 在所有最佳解中, 至少有一个是符合这个 pattern
: ┌───┬───┐
: │ │ │
: │ A │ B │
: │ │ │
: ├───┴───┤
: │ │
: │ C │
: │ │
: └───────┘
我写了一个暴力法搜索所有解的程式
18 * 19 的最佳解为 order = 7
┌──────┬────┐
│11 │8 │
│ │ │
│ │ │
│ │ │
│ ├─┬──┤
│ │3 │5 │
├────┬─┴─┤ │
│7 │7 │ │
│ │ ├──┤
│ │ │5 │
│ │ │ │
└────┴───┴──┘
(只是结构图,比例没有完全正确,比例正确的话图要画很大)
上面的结构写成一个数列的话,是 11 8 3 5 7 7 5
数列解读方法是先从左到右,然後从上到下,搜索第一个空格
然後放入大小为 n 的方块
(想一下应该就看的懂 @@")
order 7 有四种组合
1. 11 8 3 5 7 7 5
2. 8 11 5 3 7 7 5
3. 7 7 5 5 11 3 8
4. 5 7 7 5 3 11 8
不过这四个其实同构
全部不符合上面的 pattern
我程式用的暴力演算法式
for
if ( 还没填满 )
搜索下一个可以放置方块的位置(先左到右,而上到下)
订出这个方块最大可能的大小(不超出边界,也不重叠别的方块)
else
印出来
然後 back_trace (把前一个方块的大小-1,如果已经是1,那就拿掉这个方块)
这样就可以找出所有最低 order 的解答..
顺便附上 1~20 的 min-order table
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
---+----------------------------------------------------------------
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
2 | 2 1 3 2 4 3 5 4 6 5 7 6 8 7 9 8 10 9 11 10
3 | 3 3 1 4 4 2 5 5 3 6 6 4 7 7 5 8 8 6 9 9
4 | 4 2 4 1 5 3 5 2 6 4 6 3 7 5 7 4 8 6 8 5
5 | 5 4 4 5 1 5 5 5 6 2 6 6 6 7 3 7 7 7 8 4
6 | 6 3 2 3 5 1 5 4 3 4 6 2 6 5 4 5 7 3 7 6
7 | 7 5 5 5 5 5 1 7 6 6 6 6 6 2 8 7 7 7 7 7
8 | 8 4 5 2 5 4 7 1 7 5 6 3 6 5 8 2 8 6 7 4
9 | 9 6 3 6 6 3 6 7 1 6 7 4 7 7 4 7 8 2 7 8
10 | 10 5 6 4 2 4 6 5 6 1 6 5 7 5 3 5 7 6 7 2
11 | 11 7 6 6 6 6 6 6 7 6 1 7 6 7 7 7 7 7 7 8
12 | 12 6 4 3 6 2 6 3 4 5 7 1 7 5 5 4 7 3 7 4
13 | 13 8 7 7 6 6 6 6 7 7 6 7 1 7 8 8 8 7 7 7
14 | 14 7 7 5 7 5 2 5 7 5 7 5 7 1 7 7 7 6 7 6
15 | 15 9 5 7 3 4 8 8 4 3 7 5 8 7 1 7 8 5 7 4
16 | 16 8 8 4 7 5 7 2 7 5 7 4 8 7 7 1 8 7 7 5
17 | 17 10 8 8 7 7 7 8 8 7 7 7 8 7 8 8 1 8 9 7
18 | 18 9 6 6 7 3 7 6 2 6 7 3 7 6 5 7 8 1 7 6
19 | 19 11 9 8 8 7 7 7 7 7 7 7 7 7 7 7 9 7 1 9
20 | 20 10 9 5 4 6 7 4 8 2 8 4 7 6 4 5 7 6 9 1
--
To iterate is human, to recurse is divine.
递回只应天上有, 凡人该当用回圈. L. Peter Deutsch
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.78.32
※ 编辑: yoco315 来自: 140.114.78.32 (11/18 15:03)
1F:推 ledia:我跟你方法差不多 先找出某 order 可能的配置再去拼 11/18 17:21
2F:→ ledia:不过看起来你做得完整多了 XD 然後我看不出什麽规律 :( 11/18 17:22
3F:推 willieliao:DP? nice XD 11/18 21:27
4F:推 yoco315:没有DP,我想不出来怎麽DP,所以是暴力+cut 11/19 01:25
5F:推 march20:拜服 m(_ _)m (比我光说不练强太多啦XD) 11/19 05:59
6F:推 march20:会不会是螺纹分布呢@@? 中间一个方型, 周边是四块矩型? 11/19 06:00
7F:推 colawei:拜求此解之 Time Complexity & Space Complexity m(_ _)m 11/20 10:41
8F:推 march20:我想是 exponential 吧 11/21 12:12
9F:推 march20:(time complexity) 11/21 12:12
10F:推 ablboy:推! 但是请教 min-order table 要如何使用? 不甚了解! 11/22 21:02
11F:推 yoco315:那没有使用阿.. 只是印出来好看而已.. 每个都是暴力跑出来 11/24 17:13