Questions tagged «graph-theory»

对于有关图形的挑战,使用数学结构来建模对象之间的关系。

30
从较小的“ H”创建一个“ H”
挑战 创建一个函数或程序,当给定整数时size,该函数或程序将执行以下操作: 如果size等于1,则输出 H H HHH H H 如果size大于1,则输出 X X XXX X X X程序/功能的输出在哪里size - 1 (只要您愿意,0只要您在答案中指定,就可以使基本情况与相对应) 可以使用以下任何一种输出格式,以您更方便的方式: 所需结构的字符串,其中任意两个不同的字符分别对应于H和space 具有所需结构的二维数组,其中任意两个不同的值分别对应于H和space 字符串的数组/列表,每个字符串中有一行输出,并且与H和对应的任意两个不同的值space 只要每行上有恒定数量的前导空格,就可以使用前导空格。两个不同的输出字符可以取决于您选择的任何内容,只要它们不同即可。 指定代码返回的输出格式。 测试用例 1 H H HHH H H 2 H H H H HHH HHH H H H H H HH HH H HHHHHHHHH H HH HH …
73 code-golf  ascii-art  fractal  code-golf  code-golf  string  code-golf  string  matrix  code-golf  graph-theory  maze  binary-matrix  code-golf  kolmogorov-complexity  random  code-challenge  metagolf  test-battery  brain-flak  text-processing  code-golf  matrix  code-golf  number-theory  primes  code-golf  string  matrix  code-golf  binary  bitwise  code-golf  number  factorial  floating-point  code-golf  number  sequence  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-golf  string  code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

28
计算Phi(非Pi)
不,我不是说ϕ = 1.618...和π = 3.14159...。我的意思是功能。 φ(x)的是一个整数小于或等于的数量x互质到x。 π(x)是小于或等于的素数x。 假设“非pi”为π̅(x),并将其定义为小于或等于的复合数x。 任务 给定一个严格的正整数x,计算φ(π̅(x))。得分以字节为单位。 例子 每行包括输入(从1到100,包括1和100),以及由空格分隔的相应输出。 1 0 2 0 3 0 4 1 5 1 6 1 7 1 8 2 9 2 10 4 11 4 12 2 13 2 14 6 15 4 16 6 17 6 18 4 19 4 …
73 code-golf  sequence  primes  number-theory  code-golf  decision-problem  code-golf  date  code-golf  typography  code-golf  math  number  multiple-holes  code-golf  quine  code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

18
我的4音符音乐盒可以播放那首歌吗?
我有一个曲柄操作的音乐盒,可以播放四个音符。当我转动曲柄时,它会根据曲柄的位置和转动的方向拔出四根弦之一。当曲柄向北旋转时,此框(其字符串从1到4编号)如下所示: 1 | 2 | O 4 3 从那里,我可以顺时针旋转曲柄以拔出#2弦,然后将曲柄指向东: 1 2 O--- 4 3 或者,我也可以从北方逆时针旋转曲柄以播放#1弦,并以指向西的曲柄结尾: 1 2 ---O 4 3 然后,该框可以在任何给定时间播放两个音符之一:顺时针方向可用的下一个音符或逆时针方向的下一个音符。 挑战 您面临的挑战是编写一个程序或函数,该程序或函数接受非空的音符值字符串(即数字1到4),并确定是否有可能在音乐盒上播放该音符序列。产生真实或错误的结果以指示输入的可播放性或不可播放性。 一些注意事项: 输入不对初始开始位置做任何假设。输入214(从东开始并严格按逆时针方向移动)和234(从北开始并严格按顺时针方向移动)输入均有效。 每次发出音符后,曲柄可在任一方向上自由移动。33333通过在一个字符串上来回移动,可能会产生一系列相同的音符(例如)。该系列赛1221441完全可以玩(从西开始,顺时针移动两步,然后逆时针移动三步,然后顺时针移动两步)。 样品 一些true情况: 1 1234 1221 3333 143332 22234 2234 22214 1221441 41233 一些false情况: 13 (note 3 is never available after note 1) 1224 (after …

6
您的车只向右转!
介绍 您有被困在障碍道上的失控汽车中的不幸。除了损坏的转向系统外,汽车的所有功能均无响应。它可以直行,也可以向右转。可以引导汽车安全吗? 机械学 您的汽车从8x8地图的左上角开始,并试图在右下角实现安全。赛车的方向(最初是向右)以90度为增量进行测量。汽车可以执行以下两项操作之一: 向前开一个方块,或者 顺时针旋转90度,然后向前驱动一个方块 请注意,汽车无法足够急转弯以在单个广场上执行180度转弯。 一些广场是障碍。如果汽车进入障碍物广场,它将坠毁。假定8x8航道之外的所有物体都是障碍物,因此驶离航道等同于坠毁。 右下角的正方形是安全正方形,它使汽车能够逃脱障碍物路线。假定起始正方形和安全正方形不是障碍。 任务 您必须编写一个程序或函数,以8x8数组(矩阵,列表列表等)为输入,表示障碍物路线。程序返回或打印一个布尔值或类似的真值。如果汽车有可能在不撞车的情况下到达安全广场(即,如果地图可解决),则输出为True,否则为False。 计分 标准代码高尔夫规则-获胜者是字节最少的代码。 奖金: 如果对于一张可解决的地图,您的代码输出了一系列有效的驾驶员输入来引导汽车驶入安全广场,请从得分中减去10个百分点。示例输出格式可能是SRSSR(指示“直”,“右”,“直”,“直”,“右”)。该输出将替代标准True输出。 如果对于无法解决的地图,代码的输出区分不可避免的崩溃情况和可能永远绕过障碍物路线的情况,请从分数中减去10个百分点。Crash如果无法避免发生碰撞,或者Stuck汽车永远卡在障碍物路线中,则可能是示例输出。这些输出将替代False无法解决的地图的标准输出。 例 如果给程序一个8x8数组,例如: [[0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 1, 0], [1, 1, 0, 0, 0, 0, 0, 0], [0, 1, 0, 1, 0, 0, 0, 0], …

3
创建xkcd样式的叙述图
在更具标志性的xkcd片段之一中,Randall Munroe在叙述图表中可视化了几部电影的时间表: (点击查看大图。) 资料来源:xkcd 657号。 给定电影时间线的规格(或其他一些叙述),您将生成这样的图表。这是一次人气竞赛,因此(净)票数最多的答案将获胜。 最低要求 为了进一步规范,这是每个答案必须实现的最少功能集: 输入一个字符名称列表,然后是一个事件列表。每个事件要么是垂死的字符列表,要么是字符组列表(表示当前在一起的字符)。这是侏罗纪公园叙述如何编码的一个示例: ["T-Rex", "Raptor", "Raptor", "Raptor", "Malcolm", "Grant", "Sattler", "Gennaro", "Hammond", "Kids", "Muldoon", "Arnold", "Nedry", "Dilophosaurus"] [ [[0],[1,2,3],[4],[5,6],[7,8,10,11,12],[9],[13]], [[0],[1,2,3],[4,7,5,6,8,9,10,11,12],[13]], [[0],[1,2,3],[4,7,5,6,8,9,10],[11,12],[13]], [[0],[1,2,3],[4,7,5,6,9],[8,10,11,12],[13]], [[0,4,7],[1,2,3],[5,9],[6,8,10,11],[12],[13]], [7], [[5,9],[0],[4,6,10],[1,2,3],[8,11],[12,13]], [12], [[0, 5, 9], [1, 2, 3], [4, 6, 10, 8, 11], [13]], [[0], [5, 9], [1, 2], [3, …

3
救命,我陷入了Sierpinski三角!
绘制谢尔宾斯基三角形已经被 做 死。我们还有其他有趣的事情可以做。如果我们在三角形处斜视的程度足够大,则可以将上下颠倒的三角形视为分形图的节点。让我们找到解决该图的方法! 首先,让我们为每个节点分配一个数字。最大的倒置三角形将是节点零,然后我们逐层向下移动(宽度优先),并按从上到下的顺序分配连续的数字: 单击以获取较大的版本,其中较小的数字不太模糊。 (当然,在该模式的蓝色三角形内部循环往复。)来定义的编号的另一种方式是,该中心节点具有索引0,并且节点的子节点i(下一个较小规模的相邻三角形)具有指数3i+1,3i+2和3i+3。 我们如何围绕该图移动?任何给定的三角形最多可以采取六个自然步骤: 一个人总是可以通过边之一的中点移动到当前节点的三个子节点之一。我们会指定这些举措为N,SW和SE。例如,如果我们现在走的节点2,这将导致节点7,8,9分别。不允许通过边缘进行其他移动(到达间接后代)。 只要不碰到三角形的边缘,也可以通过三个角之一移至直接父级或两个间接祖先之一。我们会指定这些举措为S,NE和NW。例如,如果我们当前在node上31,S将导致10,NE无效并NW导致0。 挑战 给定两个非负整数xand y,仅使用上述六个动作找到从x到的最短路径y。如果有几个最短的路径,请输出其中任何一条。 请注意,您的代码不仅仅可以在上图中描述的5个级别中工作。您可能会认为x, y < 1743392200。这样可以确保它们适合32位带符号整数。请注意,这对应于树的20个级别。 您的代码必须在5秒钟内处理任何有效输入。尽管这排除了蛮力广度优先搜索,但它应该是一个相当宽松的约束-我的参考实现在半秒内处理了深度1000的任意输入(对于节点来说约为480位数字)。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输出应该是字符串的平面,明确的清单N,S,NE,NW,SE,SW,使用任何合理的分隔符(空格,换行,逗号,","...)。 适用标准代码高尔夫球规则。 测试用例 可以使用上图手动计算出前几个测试用例。其他人确保答案足够有效。对于那些,可能没有列出其他相同长度的解决方案。 0 40 => N N N N 66 67 => S SW N N N 30 2 => NW NW -or- NE SW 93 2 => NE SW …

30
构造身份矩阵
挑战非常简单。给定整数输入n,输出n x n单位矩阵。单位矩阵是1从左上角到右下角的s 矩阵。您将编写一个程序或函数来返回或输出您构造的身份矩阵。您的输出可能是2D数组,或者是由空格/制表符和换行符分隔的数字。 输入和输出示例 1: [[1]] 2: [[1, 0], [0, 1]] 3: [[1, 0, 0], [0, 1, 0], [0, 0, 1]] 4: [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] 5: [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], …

30
这个数字是-2的整数次幂吗?
有很多聪明的方法来确定数字是否为2的幂。这不再是一个有趣的问题,因此让我们确定给定的整数是否为-2的整数次幂。例如: -2 => yes: (-2)¹ -1 => no 0 => no 1 => yes: (-2)⁰ 2 => no 3 => no 4 => yes: (-2)² 规则 您可以编写程序或函数,并使用接收输入和提供输出的任何标准方法。 您的输入是一个整数,如果该整数是-2的整数次幂,则输出必须是一个真实值,否则,则必须是一个虚假值。不允许其他输出(例如警告消息)。 通常的整数溢出规则适用:您的解决方案必须能够在语言的假设(或实际)版本中使用任意大整数,默认情况下,所有整数都是无界的,但是如果您的程序由于实现而在实践中失败不支持大整数,这不会使解决方案无效。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 获奖条件 这是一场代码高尔夫球比赛:字节数最少(在您选择的编码中)的答案是获胜者。

8
9个字节中的40个数字
有40点的方式定向汉弥尔顿路径可以设置在3×3的网格: 该图形(感谢SP3000! )仅示出了20条无向路径。在两个方向上遍历每条彩色线,以获得40条有向路径。 挑战 仅使用可打印的ASCII,编写一个3×3的字符网格,例如: ABC DEF GHI 当从该网格中读取40个有向路径中的每一个作为40个单行9个字符的程序时,目标是使每个程序输出从1到40的唯一整数。对所有 40条路径执行此操作似乎很困难,而且不太可能,因此,您只需要使它适用于尽可能多的路径即可。 提交者的40个路径程序输出的数字从1到40最为不同。Tiebreaker转到了较早的提交。 错误或不输出从1到40的整数或输出已经覆盖的另一个路径程序的整数的路径程序不计算在内。特别: 在编译,运行或退出时发生错误的程序不计在内。警告可以。 不输出的整数从1到40或输出什么程序略微畸形如-35或35 36不计数。 需要用户输入才能产生输出的程序不计算在内。 永不结束的程序不计算在内。 从现在开始,不算确定性的程序就不算在内。 否则,将不输出已经输出另一个有效程序的从1到40的整数的有效程序。(第一程序被计数。) 只有输出整数表示形式(从1到40(含))的程序才计入总数。这些数字应采用通常的1,,2... 39,40格式,除非这不是您所用语言的规范。(输出中的尾随换行符就可以了。) 程序输出的数字和它们的顺序无关紧要。只有有效程序中不同整数的数量才重要。 所有路径程序必须以相同的语言运行。但是,“程序”实际上可以是打印或返回其目标整数的函数(没有必需的参数)或REPL命令以及完整程序。您可以在函数,REPL命令和完整程序之间混合使用。 您的9个可打印ASCII字符不需要区分。 例 如果您的3×3网格是 ABC DEF GHI 您的40个程序和输出看起来像这样 ABCFEDGHI -> 26 ABCFIHEDG -> 90 ABCFIHGDE -> 2 ABEDGHIFC -> syntax error ADEBCFIHG -> prints 40 but then errors …

6
要Vectory!–矢量赛车大奖赛
CarpetPython用户发布了对此问题的新观点,由于搜索空间的增加,该问题更加关注启发式解决方案。我个人认为挑战比我的挑战要好得多,因此请考虑尝试一下! 矢量赛车是一种令人上瘾的游戏,可以用钢笔和一张正方形的纸来玩。您可以在纸上绘制任意的赛道,定义起点和终点,然后以转弯为基础操纵点型汽车。尽可能快地到达终点,但请注意不要陷入困境! 轨道 该地图是一个二维网格,其中每个单元格都有整数坐标。 您在网格单元上移动。 每个网格单元要么是轨道的一部分,要么是一堵墙。 恰好一个跟踪单元是起始坐标。 至少一个跟踪单元被指定为目标。登陆其中任何一个都可以完成比赛。多个目标单元不一定连接。 驾驶汽车 您的汽车以给定的坐标和速度矢量开始(0, 0)。在每个转弯中,您都可以调整速度的每个分量,也可以保持不变±1。然后,将得到的速度矢量添加到您的汽车位置。 图片可能会有所帮助!红色圆圈是您上一转弯的位置。蓝色圆圈是您当前的位置。您的速度是从红色到蓝色圆圈的向量。在这回合中,取决于您如何调整速度,您可以移动到任何绿色圆圈。 如果您降落在墙壁上,则会立即损失。 你的任务 您猜对了:编写一个程序,在输入跑道的情况下,将汽车尽可能少地转向到一个目标单元。您的解决方案应该能够很好地处理任意轨道,并且不会针对所提供的测试案例进行专门优化。 输入值 调用程序时,请从stdin中读取: target n m [ASCII representation of an n x m racetrack] time target是您可能会完成此轨道的最大匝数,并且time是该轨道的总时间预算(以秒为单位)(不一定是整数)。有关计时的详细信息,请参见下文。 对于以换行符分隔的轨道,使用以下字符: # –墙 S- 在开始 *– 一个目标 . –所有其他跟踪单元(即道路) 所n x m提供的网格外部的所有单元格均隐含为墙。 坐标原点在左上角。 这是一个简单的示例: 8 4.0 9 6 ###...*** ###...*** …

4
无限迷宫
背景 您是一个功能强大的向导的徒弟,您的大师当前正在开发一种咒语,以创建一个多维迷宫来诱捕敌人。他希望您对自己的蒸汽动力计算机进行编程,以分析可能的布局。对这台恶魔般的机器进行编程非常危险,因此您需要使代码尽可能短。 输入值 您的输入是一个由句点.和哈希组成的二维网格#,表示空白空间和墙壁,以换行符分隔的字符串形式给出。总是至少有一个.和一个#,并且您可以决定是否有尾随换行符。 此网格是无限迷宫的蓝图,它是通过将网格的许多副本彼此相邻对齐而制成的。迷宫分为空腔,它们是空空间的连接组件(对角相邻的空间不连接)。例如网格 ##.#### ...##.. #..#..# ####..# ##...## 导致以下迷宫(在各个方向无限连续): ##.######.######.#### ...##.....##.....##.. #..#..##..#..##..#..# ####..#####..#####..# ##...####...####...## ##.######.######.#### ...##.....##.....##.. #..#..##..#..##..#..# ####..#####..#####..# ##...####...####...## ##.######.######.#### ...##.....##.....##.. #..#..##..#..##..#..# ####..#####..#####..# ##...####...####...## 这个特殊的迷宫包含一个无限区域的空腔。另一方面,此蓝图导致迷宫只有有限的空腔: ##.#### ##..### ####... ..####. #..#### 输出量 如果迷宫包含无限的空腔,则您的输出应为真实值,否则为虚假的值。注意迷宫可能同时包含有限和无限的腔;在这种情况下,输出应为真实的。 规则 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 其他测试用例 无限腔: .# #.# ... #.# #.###.#.###.# #.#...#...#.# #.#.#####.#.# ..#.#...#.#.. ###.#.#.#.### #...#.#.#...# #.###.#.###.# ##.### …

22
引爆一根弦
给定任何字符串,以三角形的形式打印它,其中文本沿每个对角线上下移动。例如,输入的"Hello World"应输出: d l r d o l W r d o l o W r d l o l l o W r d e l o l H l o W r d e l o l l o W r d l o l o W r …

6
评分Tarzan的奥林匹克葡萄摇摆常规
奥运会的葡萄树摆动者在标准的树上执行常规活动。特别是,“标准树” n具有0向上穿过的顶点n-1以及将每个非零顶点连接a到其n % a下面的顶点的边。因此,例如,标准树5如下所示: 3 | 2 4 \ / 1 | 0 因为5除以3时的余数为2,所以5除以2或4时的余数为1,而5除以1时的余数为0。 今年,泰山将捍卫他的金新套路,每个始于顶点n - 1,秋千到顶点n - 2,继续顶点n - 3,等等,直到最后他卸除到顶点0。 例行程序的分数是每个挥杆(包括拆卸)的分数之和,挥杆的分数是树内起点和终点之间的距离。因此,Tarzan在标准树5上的例程得分为6: 从摇摆4到3得分3分(向下,向上,向上), 从摇摆3到2得分(下降)一分, 从摆动2到1得分1分(向下),并且 从下来1,0得分为1分(下降)。 编写一个程序或函数,给定一个正整数n,该程序或函数将计算Tarzan例程在Standard Tree上的得分n。样本输入和输出: 1 -> 0 2 -> 1 3 -> 2 4 -> 6 5 -> 6 6 -> 12 7 -> 12 8 …
32 code-golf  math  number  number-theory  code-golf  code-golf  restricted-source  programming-puzzle  css  code-golf  parsing  code-golf  random  encryption  code-golf  ascii-art  fractal  code-golf  math  code-golf  sorting  graph-theory  path-finding  permutations  code-golf  tetris  code-golf  card-games  code-golf  math  sequence  rational-numbers  code-golf  chess  code-golf  string  geometry  grid  code-golf  ascii-art  grid  code-golf  sequence  integer  code-golf  math  number-theory  packing  polyomino  code-golf  math  code-golf  string  quine  permutations  code-golf  math  code-golf  image-processing  optical-char-recognition  code-golf  string  kolmogorov-complexity  sequence  integer  code-golf  number  permutations  palindrome  code-golf  kolmogorov-complexity  code-golf  number  sequence  string  fewest-operations  code-golf  string  kolmogorov-complexity  sequence  primes  code-golf  string  ascii-art  code-golf  string  number  alphabet  code-golf  counting  code-golf  number  sequence  number-theory  primes  code-golf  subsequence  word-search 

30
2的幂和
挑战 给定一个整数输入x其中1 <= x <= 255,返回时总结给出了两种力量的结果x。 例子 给定输入: 86 您的程序应输出: 64 16 4 2 输入: 240 输出: 128 64 32 16 输入: 1 输出: 1 输入: 64 输出: 64 如果总和中没有确定的2的幂,则输出可能包含零。 例如,输入65可以输出0 64 0 0 0 0 0 1。 计分 这是代码高尔夫球,因此每种语言中最短的答案将获胜。
31 code-golf  binary  code-golf  sequence  integer  chess  code-golf  number  arithmetic  matrix  code-golf  code-golf  combinatorics  grid  set-partitions  code-golf  array-manipulation  graph-theory  code-golf  number  code-golf  string  decision-problem  code-golf  matrix  cellular-automata  3d  code-challenge  restricted-source  printable-ascii  code-golf  board-game  code-golf  geometry  grid  code-golf  word-puzzle  code-golf  matrix  sorting  code-golf  code-golf  string  decision-problem  code-golf  matrix  cellular-automata  code-golf  decision-problem  code-golf  math  number  arithmetic  restricted-source  code-golf  code-golf  number  integer  matrix  code-golf  date  code-golf  matrix  code-golf  sequence  combinatorics  chemistry  code-golf  array-manipulation  popularity-contest  code-golf  code-golf  natural-language  code-golf  number  integer  sorting  substitution  code-golf  string  number  date  encode  code-golf  decision-problem  code-golf  string  subsequence  code-golf  string  alphabet  code-golf 

8
我们应该成为朋友吗?
请注意,这是一个主要关注数据结构的问题 介绍 Bacefook希望人们变得更加友好!因此,他们正在实施一个新系统来推荐朋友!您的任务是帮助Bacefook实施新的建议系统。 规格: 你的程序必须是支持3种类型的命令的一个REPL(读取-求值-输出循环): FRIEND,SUGGEST和KNOW。 FRIEND X Y-指定X和Y是社交网络中的朋友。 如果X是Y的朋友,那么Y是X的朋友 可以,但不必输出 X永远是X的朋友 KNOW X Y -如果X和Y是朋友,则输出真实值,否则输出虚假值 KNOW X X 将始终输出真实值 SUGGEST X Y-如果X和Y应该是朋友,则输出真实值,否则输出虚假值。如果满足以下条件,则X和Y应该是朋友: X和Y不是朋友 X和Y至少有1个共同的朋友 你被允许代替FRIEND,SUGGEST并KNOW用自己的字符串,但你必须谈不上什么串您更换每个命令。 您的程序可以以任何希望的方式接受输入/产生输出,只要可以相当容易地识别其工作方式即可。 社交网络中的人数N在1到100,000之间,但是可能有任意数量的“朋友链接”(边缘)。 如果您尚未注意到,这是一个图形搜索问题。实现此功能的(可能)最简单(可能最快)的数据结构将是邻接矩阵。 测试用例 FRIEND A B FRIEND A C FRIEND B D SUGGEST A B -> Falsy, as they are friends SUGGEST A …

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.