介绍
出于挑战的目的,我们将在正方形矩阵定义元素的邻居(使得)为 与对角线,水平或垂直相邻的所有项。(即,它们“环绕”而不环绕)。E
对于悬挂物,的邻居的正式定义用于 MATIX为(0索引): 中
假设索引i,\:j的元素对所有邻居都互斥(即)。可悲的是,这个穷人无法从附近粗鲁的居民那里借来一杯糖。
任务
足够的故事:给定一个正整数的方阵,输出以下之一:
- 元件的指示占用一些索引中的所有条目的平面列表(重复数据删除或不)在,使得邻居是敌对。
- 一个布尔值矩阵,在邻居处于敌对的位置时为 s,否则为(您可以选择任何其他一致的值来代替和)。
- 代表敌对邻居的索引对i,\:j的列表。
Physica中的参考实现 –还支持I / O的Python语法。您可以通过任何标准方法并以任何合理的格式接受输入并提供输出,同时请注意,默认情况下禁止这些漏洞。这是代码高尔夫球,因此以字节为单位(每种语言)的最短代码胜出!
此外,您也可以将矩阵大小作为输入,并且也可以将矩阵作为平面列表,因为它始终是正方形。
例
考虑以下矩阵:
每个元素的对应邻居是:
i j – E -> Neighbours | All coprime to E?
|
0 0 – 64 -> {10; 27; 22} | False
0 1 – 10 -> {64; 14; 27; 22; 32} | False
0 2 – 14 -> {10; 22; 32} | False
1 0 – 27 -> {64; 10; 22; 53; 58} | True
1 1 – 22 -> {64; 10; 14; 27; 32; 53; 58; 36} | False
1 2 – 32 -> {10; 14; 22; 58; 36} | False
2 0 – 53 -> {27; 22; 58} | True
2 1 – 58 -> {27; 22; 32; 53; 36} | False
2 2 – 36 -> {22; 32; 58} | False
因此输出必须是以下之一:
{27; 53}
{{0; 0; 0}; {1; 0; 0}; {1; 0; 0}}
{(1; 0); (2; 0)}
测试用例
Input –> Version 1 | Version 2 | Version 3
[[36, 94], [24, 69]] ->
[]
[[0, 0], [0, 0]]
[]
[[38, 77, 11], [17, 51, 32], [66, 78, 19]] –>
[38, 19]
[[1, 0, 0], [0, 0, 0], [0, 0, 1]]
[(0, 0), (2, 2)]
[[64, 10, 14], [27, 22, 32], [53, 58, 36]] ->
[27, 53]
[[0, 0, 0], [1, 0, 0], [1, 0, 0]]
[(1, 0), (2, 0)]
[[9, 9, 9], [9, 3, 9], [9, 9, 9]] ->
[]
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[]
[[1, 1, 1], [1, 1, 1], [1, 1, 1]] ->
[1, 1, 1, 1, 1, 1, 1, 1, 1] or [1]
[[1, 1, 1], [1, 1, 1], [1, 1, 1]]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
[[35, 85, 30, 71], [10, 54, 55, 73], [80, 78, 47, 2], [33, 68, 62, 29]] ->
[71, 73, 47, 29]
[[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 1, 0], [0, 0, 0, 1]]
[(0, 3), (1, 3), (2, 2), (3, 3)]