У теорії графів Кактус - це зв'язаний графік, такий, що будь-які виразні два простих циклу в графі ділять щонайменше одну вершину.
Ось Кактус з 3 простими циклами, окресленими пунктирними лініями.
Наступний графік схожий на зображений вище, але не є кактусом, оскільки дві вершини, позначені червоним кольором, поділяються двома простими циклами.
Речі можуть бути дещо складнішими, наприклад наступний графік:
Може виглядати як кактус, але це не так. Це можна показати, виділивши наступний цикл:
Цей цикл поділяє більше однієї точки з великою кількістю більш очевидних циклів на графіку.
Визначення
Зв'язаний графік - це такий графік, що існує принаймні один шлях між будь-якими двома вершинами.
Простий цикл - це шлях на графіку, який починається і закінчується в одній вершині і відвідує не одну вершину більше одного разу.
Простий графік - це непрямий, невагомий графік, такий, що жодна вершина не з'єднана дві один з одним більш ніж одним ребром і жодна вершина не з'єднана з собою. Простий графік - це самий основний тип графіка, і це те, що означає більшість людей, коли вони говорять.
Завдання
Візьміть простий графік як вхідний і вирішіть, чи це графік Кактуса. Ви повинні вивести два різних значення: для True та одне для False. Ви можете взяти інформацію в будь-якому форматі, який вважаєте за потрібне.
Це код-гольф, тому ви повинні прагнути мінімізувати кількість байтів ваших відповідей.
e
містить рівно один елемент І чи v
містить точно 2 І v
рівний першому елементу e
? 2) АБО v
Дорівнює об'єднанню перших елементів кожного елемента в e
? Другий тест проходить перший чек ( v=[1,2]=e[0]=[1,2]
) і інші тести , які повинні бути справжній матчем другими, наприклад , випадок # 4: v=[1,2,3,4,5,6]=[e[0][0],e[1][0],e[2][0],e[4][0]]=[1,2,3,4,5,6]
.
console.log(f([1,2,3,4,5,6,7,8,9,10,11,12,13])([[1,2],[1,3],[3,4],[2,4],[3,5],[5,6],[6,7],[7,8],[8,5],[7,9],[9,10],[10,11],[11,7],[8,12],[8,13]]))
true
чи false
?