nq1s788

Дружелюбные пауки

Nov 2nd, 2025
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. Заметим, что если строить граф по определению, то он выйдет большим. Это будет надвигать нас на мысль, чтобы его сделать более компактным. Давайте создадим двудольный граф, левая доля которого — все вершины из условия, а в правой доле каждая вершина будет отвечать за какое-то простое число, не большее, чем максимальное число из левой доли. Проведем ребро из вершины левой доли 𝑣
  2. в вершину правой доли 𝑢
  3. в случае, если 𝑎𝑣
  4. делится нацело на простое число, соответствующее вершине 𝑢
  5. . В данном графе от вершины 𝑠
  6. до вершины 𝑡
  7. запустим bfs и выведем расстояние, деленное на 2
  8. .
  9.  
  10. Теперь о том, как быстро построить такой граф. Очевидно, что у числа 𝑎𝑖
  11. будет не более log𝑎𝑖
  12. различных простых делителей. Тогда давайте факторизуем 𝑎𝑣
  13. и проведем ребра от вершины 𝑣
  14. до каждого простого в факторизации.
  15.  
  16.  
Advertisement
Add Comment
Please, Sign In to add comment