区间图(维基百科,MathWorld,GraphClasses)是从直线上的一组区间导出的无向图。每个顶点表示一个区间,如果对应的间隔重叠,则两个顶点之间存在一条边。下面是一个具有相应间隔的区间图示例。
多个线性时间算法可以确定给定的图是否为区间图。这些图的许多其他图论问题在线性时间内也是可解的.有关详细信息,请参阅维基百科和GraphClasses链接。
请注意,在这个挑战中,您不需要满足线性时间复杂度。
给定一个无向、连通、无循环、非空的图作为输入,确定它是否是一个区间图.(“无循环”意味着图不包含从顶点到自身的任何边。)
图可以使用无向图的任何标准化结构作为输入,其中包括
(vi, vj)
对的列表)。如果使用邻接列表或边列表,则可以假定顶点是连续编号的(0或1)。对于所有输入方法,您可以选择将顶点数作为第二个输入。
对于输出,可以选择
适用标准的密码-高尔夫规则。以字节为单位的最短代码获胜。
测试用例给出了基于1的顶点编号的边列表.
[(1,2)]
[(1,2), (1,3), (2,3)]
[(1,2), (1,3)]
[(1,2), (1,3), (2,3), (3,4), (4,5), (4,6), (5,6)]
[(1,2), (1,3), (2,3), (2,4), (3,4)]
[(1,2), (1,3), (1,4), (1,5), (1,6), (2,3), (3,4), (4,5), (5,6)]
// contains a 4-cycle without chord
[(1,2), (1,3), (2,4), (3,4)]
[(1,2), (1,3), (2,3), (2,4), (3,5), (4,5)]
// contains an asteroidal triple (1, 4, 6)
[(1,2), (1,3), (2,3), (2,4), (2,5), (3,5), (3,6), (4,5), (5,6)]
发布于 2021-08-12 06:19:29
https://codegolf.stackexchange.com/questions/233338
复制相似问题