Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1. Просто відстані (без сіна) від фініша до вершин можна порахувати Дейкстрою.
- 2. Відстані з сіном розпадаються на 2 часитини:
- - відстань від вершини до сіна
- - відстань від сіна до фініша
- 3. Введемо нову фіктивну вершину (клон фініша), і проведемо від нього ОРІЄНТОВАНІ ребра до кожного сіна.
- Вага такого ребра буде: міншлях від фініша до сіна МІНУС смачність сіна.
- Ці ребра можуть бути від'ємними.
- 4. Тепер лишилось знайти найкоротші шляхи від цього фіктивного фініша до всіх вершин (це буде відповідати умові задачі, коли перехід по новому фіктивному ребру - це стиснутий шлях від фініша до сіна) і далі просто шлях по звичайним ребрам графа від цього сіна.
- Незважаючи на те, що в графі є від'ємні ребра - ми можемо застосувати Дейкстру (оскільки ці ребра будуть лише від фінішної вершини, тобто вони фактично просто задають ніби початкове значення мінвідстаней і не вплинуть на подальші ітерації Дейкстри).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement