Не могу понять, почему зашло решение..

Revision ru1, by Jostic11, 2018-11-23 17:52:43

На контесте https://codeforces.net/contest/1061 я сдал задачу F, но уверен, что мое решение не правильное.. может кто объяснить как оно зашло?

Вообщем идея заключается в том, что бы взять две вершины А и Б и с помощью простых манипуляций сделать их листьями(просто перебираем С и если на пути из С в Б содержится А, то А становится С, тоже проделываем с Б) теперь у нас есть 2 листа. Дальше я делаю так: нахожу вершину которая является их lca и если эта вершина = корень(проверяется с помощью высоты дерева), то вывожу ответ, иначе я отставляю А листом, а Б делаю равным любой вершине, такой, что путь из А в эту вершину содержит lca. (НЕ РАНДОМНО). так вот есть проблема: мое решение должно падать всегда, когда мы после lca Б делаем равную одному из потомков lca.. тогда программа будет циклиться бесконечно и будет ТЛ.. я отправил это решение 3 раза и они все зашли.. неужели просто везет и никогда не появляется теста, где я захожу в потомка lca?

И да, единственный рандом который у меня есть это на начальные А и Б.. без него ТЛ 18

https://codeforces.net/contest/1061/submission/46088106

Tags задача, контест, 523

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
ru1 Russian Jostic11 2018-11-23 17:52:43 1142 Первая редакция (опубликовано)