Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. 1. Просто відстані (без сіна) від фініша до вершин можна порахувати Дейкстрою.
  2.  
  3. 2. Відстані з сіном розпадаються на 2 часитини:
  4. - відстань від вершини до сіна
  5. - відстань від сіна до фініша
  6.  
  7. 3. Введемо нову фіктивну вершину (клон фініша), і проведемо від нього ОРІЄНТОВАНІ ребра до кожного сіна.
  8. Вага такого ребра буде: міншлях від фініша до сіна МІНУС смачність сіна.
  9. Ці ребра можуть бути від'ємними.
  10.  
  11. 4. Тепер лишилось знайти найкоротші шляхи від цього фіктивного фініша до всіх вершин (це буде відповідати умові задачі, коли перехід по новому фіктивному ребру - це стиснутий шлях від фініша до сіна) і далі просто шлях по звичайним ребрам графа від цього сіна.
  12. Незважаючи на те, що в графі є від'ємні ребра - ми можемо застосувати Дейкстру (оскільки ці ребра будуть лише від фінішної вершини, тобто вони фактично просто задають ніби початкове значення мінвідстаней і не вплинуть на подальші ітерації Дейкстри).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement