这是一块石头:
*石头可以堆放。除了最底层的岩石外,每块岩石都必须放在另外两块岩石上,如下所示:
*
* *你有一堆石头,而你的老板希望你把它们对称地堆放起来,占据尽可能少的水平空间。
你的挑战是把许多岩石作为输入,输出许多岩石对称地堆放在尽可能小的基座上。
例如,通过输入4:
你不能把一堆4块岩石装在2的底座上。如果底座是3,你可以,但你不能使它对称--你最终会得到这样的结果
*
* * *所以你需要一个4的基础尺寸,它消耗了你所有的岩石,所以结果是:
* * * *输出中允许任何尾随或前导空格,您可以使用任意两个不同的字符来代替*和。如果有多种方法可以将输入的岩石数对称地叠加在同一基座上,那么任何一种方法都是有效的。
这是密码-高尔夫,最短的胜利!
4 =>
* * * *
7 =>
* * *
* * * *
8 =>
*
* *
* * * * *
9 =>
* *
* * *
* * * *
12 =>
* * *
* * * *
* * * * *
13 =>
* *
* * * * *
* * * * * *
or
* *
* * * * *
* * * * * *
17 =>
* *
* * * *
* * * * *
* * * * * *
19 =>
* *
* * * *
* * * * * *
* * * * * * *
Or
*
* *
* * *
* * * * * *
* * * * * * *
20 =>
* *
* * *
* * * *
* * * * *
* * * * * *
56 =>
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *
* * * * * * * * * * *
or
* *
* * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *
* * * * * * * * * * *发布于 2021-08-17 21:47:14
一个相当天真的搜索,但相当快。
f=(n,W)=>(g=(w,x=2**w-1,o='',t=n,p=o,X=x)=>x?(i=t,s='',h=k=>k--&&(q=(x&X)>>k&1)|2*h(k,i-=q,s+=' X'[q]+' '))(w)==x&&g(w-1,x&x/2,p+s+`
`+o,i,p+' ')||o&&g(w,x-1,o,t,p,X):!t&&o)(W)||f(n,-~W)https://codegolf.stackexchange.com/questions/233471
复制相似问题