| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C++] Проверка связанности графа |
| Автор: Sailes 6.1.2007, 16:34 |
| Помогите написать программу. Такая задача: В заданной группе людей некоторые попарно дружат. В этой группе все люди дружественны, то есть любые двое или сами являются друзьями, или их друзья дружат, или друзья их друзей дружат и т.д. Найти все такие пары, что если их поссорить, то получится два недружественных лагеря. Если перевести все это на русский язык, то получится Есть граф с заданным числом вершин и ребер. Граф связанный (из одной вершины можно пройти в любую другую). Нужто найти все такие ребра, при удалении которых связанность нарушается. Собственно, вот. |
| Автор: Sailes 15.1.2007, 16:32 |
| Эх, что-то тихо в топике... Разгоню молчание. В общем, откопал прогу (прикрепленный файл), она оооочень большая и ооочень сложная (для меня), но в ней содержатся алгоритмы, необходимые для решения задачи в после выше, а именно - с помощью списков смежности создается граф (для каждой вершины в порядке возрастания указываются вершины, с которыми она соприкасается ребрами), а также алгоритм удаления ребра, пути из выбранной вершины в другую выбранную вершину и пути из выбранной вершины во все остальные. А не мог бы кто-нибудь посмотреть, как реализовать проверку всех путей из всех вершин во все остальные вершины после удаления ребра? То есть как раз связанность? Народ, плиз, отзовитесь пожалуйста. |
| Автор: VaiMR 21.1.2007, 13:36 | ||
Вот, собственно, проверка связности:
|