Questions tagged «grid»

对于涉及网格的挑战。

4
矩形差
在此挑战中,您将获得两个重叠的矩形,并且需要计算通过从另一个中删除一个而创建的矩形。 例如,如果您从黑色矩形中删除红色矩形: 您最终得到以下两个矩形集之一: 您还需要处理以下内容: 更明确地说: 您将输入两个矩形A和B的坐标。 您需要输出覆盖A的所有区域而没有B的最少的非重叠矩形。允许任何可能的覆盖 直角坐标作为4个整数传递。您可以将它们传递为两对(代表两个角点),也可以作为4个整数的元组/列表传递。您的输入和输出必须保持一致。 A和B不一定会重叠或接触,并且各自的面积至少为1 测试用例: [(0 0) (5 5)] [(3 4) (8 7)] -> [(0 0) (5 4)] [(0 4) (3 5)] # or [(0 0) (3 5)] [(3 0) (5 4)] [(2 4) (10 11)] [(5 5) (6 6)] -> [(2 4) (10 5)] …

4
在公园种树-尽快!
这个挑战的灵感来自这个程序。测试用例是从该应用程序借用的。 这是最快的代码挑战,目标是在最短的时间内解决最大的测试案例。提供了一些较小的测试用例,以便人们可以更快地测试其算法。 您将得到一个正方形的输入网格,尺寸为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 …

5
> <>没水了
通过&gt; &lt;&gt;(一种深奥的编程语言)的代码游泳的心爱的鱼已被带出自然环境。这种变化使它无法像过去那样四处移动:过去的环形运动仅限于简单的从左到右运动。但是仍然编写程序,好像鱼能够通过它们。亲爱的程序员,您的任务是编写程序来线性化&gt; &lt;&gt;程序。并尽可能减少字节数;鱼没有很大的记忆。 在&gt; &lt;&gt;中移动 在&gt; &lt;&gt;中,移动是环形的,一次只能移动一个字符。这意味着鱼(指针)可以从一行的结尾“回到”开头。在&gt; &lt;&gt;中,与大多数指针移动的方式相比,鱼还能够从上到下,从下到上和从右到左移动。因此,此移动方式将是有效的: &gt;&gt;&gt;^ &gt;&gt;&gt;v &gt;&gt;&gt;^ v 并以无限循环结束(一旦它越过底部无限循环回到顶部)。 鱼在长度等于max(行长)且高度等于行数的网格中移动。 您如何找出鱼移动的方式?这些命令改变了运动的方向向量(例如,(-1,0)从右到左的意思): Command | Direction Change --------------------------- &gt; | (1,0) (default) &lt; | (-1,0) ^ | (0,1) v | (0,-1) / | (x,y) -&gt; (y,x) \ | (x,y) -&gt; (-y,-x) | | (x,y) -&gt; (-x,y) _ | …
20 code-golf  grid 

2
曼哈顿最坏情况排除
想象一下W到H的正方形正方形网格,它们以环形环绕。将项目如下放置到网格上。 第一项可以放置在任何正方形上,但是后续项一定不能在任何先前项的曼哈顿距离 R内(也称为范围R的冯·诺伊曼邻域)。仔细选择位置可以在没有更多有效位置之前将大量项目装配到网格上。但是,请考虑相反的目标:可以放置的且没有其他有效位置的最少物品数是多少? 这是半径5的禁区: 这是另一个半径5排除区域,这次是在边缘附近,因此包裹行为很明显: 输入值 三个整数: W:网格宽度(正整数) H:网格高度(正整数) R:禁区半径(非负整数) 输出量 整数N,它是可以放置的最小项数,可以防止任何其他有效的放置。 细节 半径为零时,排除区域为1平方(放置该项目的区域)。 半径N排除了在N个正交步长中可以到达的区域(请记住边缘以环形方式缠绕)。 您的代码必须适用于琐碎的R = 0情况,但不需要适用于W = 0或H = 0。 您的代码还必须处理R &gt; W或R &gt; H的情况。 时限和测试用例 您的代码必须能够处理所有测试用例,并且每个测试用例必须在5分钟内完成。这应该很容易(示例JavaScript解决方案每个测试用例需要花费几秒钟的时间)。期限主要是为了排除极端暴力手段。示例方法仍然是蛮力的。 如果您的代码在一台计算机上在5分钟内完成,但在另一台计算机上没有完成,这将足够接近。 输入形式的测试用例:输出为W H R : N 5 4 4 : 1 5 4 3 : 2 5 4 2 : 2 …

7
确定在宝石迷阵/第3场比赛中是否存在移动
背景 在“宝石迷阵”和类似的游戏中,玩家必须在8x8的宝石网格中交换任意两个相邻的宝石(没有对角线),以便连续匹配三个相同颜色的宝石。宝石可以水平或垂直匹配。游戏的进行一直持续到没有动作可导致连续三局为止,此时游戏结束了。 任务 目的是编写一个确定“宝石迷阵”游戏是否还没有结束的程序。换句话说,它必须检查是否有可能连续移动至少三个。连续可以有三个以上的宝石,这仍然是有效的举动。 输入值 您的程序必须通过标准输入接受Bejeweled网格的8x8表示形式。七种宝石颜色中的每一种将由1到7的数字表示。每行将包含一行,并且将输入8行,每行包括8位数字。请参阅示例。您可以假设输入将始终遵循此格式,并且永远不会连续包含三个。 输出量 然后,程序必须输出(至标准输出),yes或者no取决于是否存在至少一个有效动作,该动作将导致连续出现三个或更多宝石。您的程序不得输出yes或的单个实例以外的任何内容no。 规则 您的程序不得使用任何外部文件或资源,命令行参数或要求使用特定的文件名。源代码中字节数最少的程序将获胜。 例子 输入: 12314131 13224145 54762673 61716653 61341144 23453774 27645426 75575656 输出: yes 输入: 35261546 76421754 15743271 62135642 35617653 64565476 54427254 15635465 输出: no 有关其他测试案例,请参见下面的MT0答案。
20 code-golf  game  grid 

27
为*写翻译
任务很简单。为*语言编写口译员。 这是Wiki的更大链接。 只有三个有效的*程序: * 打印“ Hello World” * 打印0到2,147,483,647之间的随机数 *+* 永远运行。 根据此问题的规范,第三种情况必须是无限循环 输入: 可以通过我们的标准I / O规则通过任何可接受的输入方法进行输入 它将永远是以上程序之一 输出: 第一种情况应打印准确Hello World,带有或不带有尾行。 对于第二种情况,如果您的语言的整数最大值小于2,147,483,647,请使用您的语言的整数最大值 根据我们的标准I / O规则,第一种情况和第二种情况可以打印到任何可接受的输出。 第三种情况不应给出任何输出。 得分: 因为这是代码高尔夫球,所以最短的答案(以字节为单位)获胜。
20 code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

2
岛屿高尔夫2:古怪的隐士
这是Island Golf系列挑战中的第二次挑战。先前的挑战 两个隐士到达了一个荒岛。由于他们寻求孤独,所以他们希望彼此之间住得尽可能远。他们应该在哪里建造小屋,以使他们之间的步行距离最大化? 相关阅读 输入项 您的输入将是一个由两个字符组成的矩形网格,分别代表土地和水。在下面的示例中,土地是#,水是.,但是您可以替换任意两个不同的字符。 ........... ...##...... ..#####.... ..#######.. .#########. ...#######. ...#####.#. ....####... ........... 始终将至少有两个地砖。地砖将是连续的(即只有一个岛)。瓷砖也将是连续的(即没有湖泊)。网格的外边界都是水瓦片。地砖将不会以对角线连接:即,您将永远不会看到类似 .... .#.. ..#. .... 输出量 您的代码必须输出相同的网格,并在网格上标记了两个小屋位置。在下面的示例中,小屋的位置用X标记,但是您可以替换任何字符,只要它与您的水陆字符不同即可。 小屋的位置必须为两个地砖,以选择它们之间的最大步行距离。我们将步行距离定义为两点之间完全在陆地上的最短路径的长度。地砖被视为水平或垂直相邻,但不对角。 上述岛屿的可能解决方案: ........... ...X#...... ..#####.... ..#######.. .#########. ...#######. ...#####.X. ....####... ........... 这两个点之间的步行距离是11,这是该岛上任何两个点之间的最大距离。还有另一个距离11解决方案: ........... ...##...... ..X####.... ..#######.. .#########. ...#######. ...#####.X. ....####... ........... 细节 您的解决方案可能是完整程序或功能。任何默认的输入和输出方法都是可以接受的。 您的输入和输出可以是多行字符串,字符串列表或2D数组/嵌套的字符列表/单字符字符串。您的输出可能(可选)有一个尾随换行符。如上所述,您可以使用任何三个不同的字符来代替#.X(请在提交中指定要使用的字符)。 测试用例 A.具有独特小屋位置的岛屿: .... .##. …

2
解决冰迷宫
冰迷宫一直是我最喜欢的主食之一的神奇宝贝,因为他们的神奇宝贝黄金和白银登场比赛。您的任务是编写一个解决这些类型问题的程序。 顾名思义,冰迷宫主要由冰组成。一旦玩家在冰上向某个方向移动,他们将继续向该方向移动,直到与某个障碍物碰撞为止。还有可以自由移动的土壤,将阻止任何玩家在其上移动。最后的障碍是石头。石头不能与玩家占据相同的空间,如果玩家尝试进入其中,他们将停止移动,然后才能移动。 您将收到一个二维的值容器,例如列表列表或用换行符分隔的字符串,其中包含3种地板类型(冰,土壤和石头)中的每种的3个不同值。您还将收到两对(或其他等效的两个值容器),它们指示迷宫中的起点和终点坐标。这些可以是零或一个索引。 您必须输出一个动作列表(在N,E,S,W上有两个双射的4个不同值),这将导致玩家在执行时到达终点。 输入始终在迷宫周围有一个封闭的石头周界,因此您不必担心玩家退出迷宫 这是代码高尔夫球,因此最少的字节获胜 测试用例 这里.代表冰,~代表土壤,O代表石头。坐标为1索引。解决方案中的每个字母代表以该字母开头的方向(例如N=北) 输入项 OOOOO OO.OO O...O OOOOO Start : 3,3 End : 3,2 输出量 N 输入项 OOOOOOOOOOOOOOOOO O........O.....OO O...O..........OO O.........O....OO O.O............OO OO.......O.....OO O.............OOO O......O.......~O O..O...........~O O.............OOO O.......O......OO O.....O...O....OO O..............OO OOOOOOOOOOOOOO~~O OOOOOOOOOOOOOOOOO Start : 15,12 End : 16,8 输出量 N,W,N,E,N,E,S,W,N,W,S,E,S,E,N,E,N 输入项 OOOOOOOOOOOOOOOO O~~~~~OOOOO~~~~O O~~O~OOOOOOO~~OO O...O..........O …

24
网格ASCII艺术代码高尔夫
挑战 创建满足要求的最短程序 要求 该代码必须生成一个5x5的0网格,如下所示: 00000 00000 00000 00000 00000 该代码必须接受输入(列,行,字符)。网格必须相应地更改: 开始: 00000 00000 00000 00000 00000 输入: (2,5,*) 输出: 0*000 00000 00000 00000 00000 (注意:左下角是位置1,1。) 如果行/列输入不1,2,3,4或5这可以是您选择的任何消息(只要它不是电网)的程序必须返回除电网之外的错误信息,所以0是可接受的错误输出。 该程序必须使用所有可打印的ASCII字符(使用美国键盘)。 获胜者,冠军 获胜者将是代码最短且满足所有要求的人。如果一个以上的答案有效且长度相同(最短),则第一个回答的人将成为赢家。

16
突出显示边界框,第一部分:笛卡尔网格
您会得到一个由.和组成的矩形网格#,如下所示: .......... ..#....... ....#..#.. ...#...... .......... 你的任务是填补的整个轴线对齐边框#进一步#: .......... ..######.. ..######.. ..######.. .......... 轴对齐的边框是包含所有的最小矩形#。 想要更多?尝试第二部分! 规则 您可以使用任意两个不同的打印的ASCII字符(0x20至0x7E的,包容性的),代替#和.。我会继续提到他们作为#和.对规范虽然剩下的时间。 输入和输出可以是单个换行符分隔的字符串,也可以是字符串列表(每行一个),但是格式必须一致。 您可以假定输入至少包含一行,#并且所有行的长度均相同。 您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 测试用例 每个测试用例具有彼此相邻的输入和输出。 # # ... ... #.. #.. ... ... ... ... #.. ### ..# ### .#. ### #.. ### ..# ### ..... ..... .#.#. .###. ..... ..... ... …

1
寻求跳跃者
我最近有一个非常奇怪的不规则棋盘。它的正方形到处都是,甚至没有全部相连。至少它们仍然布置在常规网格上。我希望适应国际象棋规则,以便能够在棋盘上玩游戏,但首先,我需要一块可以在棋盘上任何地方玩的棋子,这似乎是我最好的选择。 跳跃者是骑士的国际象棋概括。跃点由两个整数m和n设置参数,可以在一个方向上移动m个正方形,然后在任一垂直方向上移动另一个n个正方形。对于标准骑士,我们有(m,n)=(2,1)。整个动作被认为是一次跳跃,因此到目标途中的正方形都不需要为空,甚至不存在。 挑战 您会以正2D整数坐标列表的形式获得“棋盘”,该2D整数坐标表示作为棋盘一部分的正方形。您的任务是找到一个跳线,如果有足够的动作,该跳线可以到达板上的任何正方形。 让我们看一些例子。标准棋盘使用8x8正方形的规则网格(请注意,对于此挑战,我们不区分白色和黑色正方形): ######## ######## ######## ######## ######## ######## ######## ######## 标准骑士可以达到所有目标,因此(2, 1)是有效的输出。但是,(1, 1)例如,这将是无效的,因为无论从哪里开始,这样的一块都只能达到正方形的一半。(1, 0)另一方面,由于所有正方形都是正交连接的,因此这也是有效的输出。 现在,如果我们有一个不规则的董事会,例如: # # # # # # # # # # # 然后可能的解决方案是(1, 1)和(3, 1)。我们还可以拥有一个完全断开区域的板,例如: #### #### #### #### #### #### #### #### 标准的骑士(2, 1)仍然可以到达这里的所有方块,这实际上是唯一的解决方案。 最后,任何跳伞者都无法完全达到以下简单的要求: # ## 请注意,输入格式将不是ASCII表示,而是坐标列表。例如,上面的第二个示例可以给出为: [[1, 1], [5, 1], …

5
是否有更多的硬物或软物
与假设分析书的开头相切。 输入是一个由空格组成的矩形,如字符串,字符串列表等,其对象由#内部组成: ######## # # ######## ### #### ### #### ### 对象将始终是非相交,非接触的矩形。软对象的定义是#中间没有用填充的对象,而只是边界,而硬对象则是填充的对象。具有宽度或高度的对象&lt;=2被认为是坚硬的。所有对象都是硬的或软的。 如果输入,输出中有更多的硬对象"Hard",如果较软,则输出"Soft",如果相等则输出"Equal"。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 这些情况不是全部输入,而是每个对象应表征的内容。实际输入将类似于问题顶部的ascii艺术。 硬 # #### ## ## ########## ########## ########## 柔软的 ### # # ### ################### # # # # # # ################### #### # # # # # # # # # # # # …
19 code-golf  ascii-art  counting  code-golf  number  grid  decision-problem  chess  code-golf  grid  graph-theory  chess  code-golf  math  geometry  code-golf  arithmetic  roman-numerals  fastest-code  code-golf  math  geometry  code-golf  string  cryptography  code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

6
稳定的生活游戏
挑战: 给定0和1的矩阵(或2d数组),输出Conway的生活游戏达到稳定状态所需的步数,如果从未达到1,则输出-1。稳定状态是每个步骤都没有打开或关闭任何单元的状态。游戏必须在给定的矩阵中运行,顶部和底部连接,侧面连接。(即给定的4x3矩阵,它应该在4x3的圆环上运行)输入矩阵的大小不得超过15x15。 注意:如果矩阵以稳定状态开始,则输出应为0。 样品: 输入: [[0,0,0], [0,1,1], [0,1,0]] 输出: 2 流程:(此不需要显示) [[0,0,0], [0,1,1], [0,1,0]] [[1,1,1], [1,1,1], [1,1,1]] [[0,0,0], [0,0,0], [0,0,0]] 输入: [[0,0,1,1], [0,1,1,1], [0,1,0,0], [0,1,1,1]] 输出: 2 处理: [[0,0,1,1], [0,1,1,1], [0,1,0,0], [0,1,1,1]] [[0,0,0,0], [0,1,0,1], [0,0,0,0], [0,1,0,1]] [[0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0]] 输入: [[0,1,0,0], [0,1,0,0], [0,1,0,0], [0,0,0,0]] 输出: -1 处理: [[0,1,0,0], [0,1,0,0], …

11
最大化平方差
考虑从1到的整数值的置换N。例如此示例N = 4: [1, 3, 4, 2] 我们将认为此列表是循环的,因此1和2被视为相邻列表。我们可以为这样的列表计算的一个量是相邻值的总平方差: (1-3)² + (3-4)² + (4-2)² + (2-1)² = 10 给定正整数,您的任务是找到一个最大化此数量的排列N。在N = 4上面的例子中不是最佳的(实际上,这是最小的)。18通过以下排列(以及其他几个排列),我们可以实现的总平方差: [1, 4, 2, 3] 您的算法必须在(的N)多项式时间内运行。特别是,您不能简单地计算所有排列的总平方差。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输出可以采用任何方便,明确,平坦的列表或字符串格式。您可以选择从与返回值的列表0,以N-1代替1向N。 适用标准代码高尔夫球规则。 测试数据 这个问题有一个很好的分析解决方案。例如,所有有效的解决方案N = 10均等效于以下列表(直至循环移位和反转): [7, 5, 6, 4, 8, 2, 10, 1, 9, 3] 我不想透露过多的信息(尽管足以找出模式),因此无需给出更多示例,您可以检查您的结果是否具有给定的总平方差N: N Total squared difference 1 0 2 …
19 code-golf  array-manipulation  permutations  restricted-complexity  code-golf  geometry  grid  code-golf  string  sorting  code-golf  simulation  code-golf  string  code-golf  arithmetic  code-golf  sorting  code-golf  string  code-golf  sorting  code-golf  interpreter  code-golf  number  kolmogorov-complexity  natural-language  conversion  code-golf  random  internet  code-golf  board-game  code-golf  number  sequence  code-golf  math  number  code-challenge  image-processing  classification  test-battery  code-golf  ascii-art  code-golf  tips  code-golf  arithmetic  code-golf  tips  code-golf  tips  javascript  code-golf  array-manipulation  code-golf  ascii-art  code-golf  string  binary  code-golf  arithmetic  linear-algebra  matrix  code-golf  sequence  code-golf  math  number  arithmetic  code-golf  primes  code-golf  math  code-golf  array-manipulation  counting  code-golf  arithmetic  code-golf  quine  code-generation  polyglot  code-golf  math  kolmogorov-complexity  trigonometry  code-golf  string  encryption 

1
确定Connect 4的获胜者
系统会为您提供部分填充的Connect 4网格(7x6)。 O X O X X O X O O X O X O X X O X X X O O X O O O X X O X (输入可以一维或二维数组以及字母或数字等形式给出。) 假使,假设 X开始游戏。 还没有人赢。 玩家可能直到现在还没有打得很好,但是从现在开始,他们都将采用最佳策略。 输入网格没有故障。 您必须输出一个值来指示哪个玩家获胜(或平局) 挑战高尔夫挑战赛;所以最短的代码胜出。您的程序不必在合理的时间内实际计算输出,但是您应该能够证明在有限的时间内可以正确获得输出。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.