这个挑战的灵感来自这个程序。测试用例是从该应用程序借用的。
这是最快的代码挑战,目标是在最短的时间内解决最大的测试案例。提供了一些较小的测试用例,以便人们可以更快地测试其算法。
您将得到一个正方形的输入网格,尺寸为n×n,其中9 <= n <= 12。该网格将被划分为n个区域,其中每个区域的单元格都有一个唯一的标识符(我将在文本中使用al中的小写字母,但您可以选择任意值,例如整数1-12) 。
输入可能看起来像这样(可选输入格式):
aabbbbbcc
adddbbbcc
adeeecccc
adddefgcc
hhhdifggg
hdddifffg
hhhiifffg
hihiifffg
iiiiiiggg
或者,更容易可视化:
挑战:
您将根据以下规则在该公园中放置2 * n棵树:
- 每列应有2棵树,每行应有2棵树
- 所有区域都必须有2棵树。
- 垂直,水平或对角线的任何树都不能与另一棵树相邻
上面布局的解决方案是:
注意:每个难题只有一个解决方案
附加规则:
- 输入和输出格式是可选的
- 例如,输出可能是索引列表,带有1/0的网格(指示在该位置是否有树)或输入的修改版本(其中指示了树)
- 执行时间必须是确定的
- 该程序必须在@isaacg的计算机上完成1分钟
- 规格:4个CPU,i5-4300U CPU @ 1.9 GHz,7.5G RAM。
- 如果您的程序无法在一分钟内解决两个最大的测试用例,那么第二大的测试时间(n = 11)将作为您的分数。您将失去解决最大案例的解决方案。
测试用例:
如果提交似乎是针对这些测试用例定制的,那么我可以编辑此列表。
12乘12:
--- Input ---
aaaaabccccdd
aaaaabccccdd
aaaaabbbbddd
eeeafffgbghh
eeaafffgbghh
eefffffggghh
eeefijffghhh
iieiijjjjkhh
iiiiijjjjkhk
lljjjjjjjkkk
llllllkkkkkk
llllllkkkkkk
--- Solution ---
aaaaabcccCdD
aaaaaBcCccdd
aAaaabbbbdDd
eeeaffFgBghh
eeAaFffgbghh
eefffffGgGhh
EeefijffghhH
iiEiIjjjjkhh
IiiiijjjjkHk
lljJjJjjjkkk
lLllllkkKkkk
lllLllKkkkkk
11乘11:
--- Input ---
aaaaaaabbcc
adddabbbbcc
edddbbbbbbc
eddddbbbbbb
effffggghhh
effffgghhii
eefffjjhhii
eeeejjjhhii
eeejjjjkiii
jjjjjjkkiii
jjjjjkkkiii
--- Solution ---
aaAaaaabbCc
adddAbBbbcc
eDddbbbbbbC
eddDdBbbbbb
effffggGhHh
eFfffGghhii
eefFfjjhHii
EeeejjjhhiI
eeEjjjjKiii
JjjjJjkkiii
jjjjjkKkIii
10乘10
--- Input ---
aaaaabccdd
aeaabbbccd
aeaabfbgcd
eeeaafggcd
eeeaafghcd
eeeiifghcd
ieiiigghcd
iiijighhcd
jjjjighhcd
jjjggghhdd
--- Solution ---
aaAaabccdD
aeaaBbBccd
aEaabfbgcD
eeeaaFgGcd
eEeAafghcd
eeeiiFghCd
IeiIigghcd
iiijigHhCd
JjJjighhcd
jjjgGghHdd
9乘9
--- Input ---
aabbbbbcc
adddbbbcc
adeeecccc
adddefgcc
hhhdifggg
hdddifffg
hhhiifffg
hihiifffg
iiiiiiggg
--- Solution ---
aAbBbbbcc
adddbbBcC
adEeEcccc
AdddefgCc
hhhDiFggg
hDddifffG
hhhiIfFfg
HiHiifffg
iiiiiIgGg
--- Input ---
aaabbbccc
aaaabbccc
aaaddbcce
ffddddcce
ffffddeee
fgffdheee
fggfhhhee
iggggheee
iiigggggg
--- Solution ---
aaAbBbccc
AaaabbcCc
aaaDdBcce
fFddddcCe
fffFdDeee
fGffdheeE
fggfHhHee
IggggheeE
iiIgggGgg
There shall be exactly 2 trees per column, and 2 trees per row
因此可能无法实现蛮力。