Форум программистов, компьютерный форум, киберфорум
Наши страницы

Непростая задача на графы. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Моделирование фрактала в координатной плоскости http://www.cyberforum.ru/cpp-beginners/thread567037.html
Требуется написать программу, которая будет строить множество Мандельброта на координатной плоскости и выполнять некоторые функции. Цитирую текст задания:...
C++ Повторяющиеся элементы массива Есть произвольный массив, в котором нужно отсортировать повторяющиеся элементы по уменьшению и вывести общее кол-во повторений. Решил реализовать следующим образом: сначала просто отсортировать... http://www.cyberforum.ru/cpp-beginners/thread567034.html
C++ Классы, конструктор копирования (разбор куска программы)
class string{ char *str; void load(char *s) { str=strdup(s); } void add(char *s) { str=(char*)realloc(str,strlen(str)+strlen(s)+1); strcat(str,s); } ...
C++ теоритический вопрос - память
как вычислить адрес(реальный , а не тот который нам ядро подсовывает) какого либо объекта в виртуальной памяти? Добавлено через 5 минут имеется в виду 32 битная адресация
C++ Решение половинным делением. http://www.cyberforum.ru/cpp-beginners/thread567012.html
Составить функцию нахождения корня F(x) = 0 методом деления напополам. Интервал разбить на отрезки с шагом h. Уравнение x*x*x -2 = 0; , h = 0.5. #include <cmath> #include <iostream> #define...
C++ Перегрузка операции + Всем привет! Ребята, обясните, пжлста, почему конструктор вызывается дважды. Rational integer1( c, d ),h;// инициализация h ( здесь я понимаю почему вызывается конструктор) h=integer +... подробнее

Показать сообщение отдельно
free334
0 / 0 / 0
Регистрация: 29.04.2012
Сообщений: 9

Непростая задача на графы. - C++

06.05.2012, 15:11. Просмотров 1329. Ответов 10
Метки (Все метки)

Здравствуйте! Необходимо решить такую задачу:
Антон работает в межгалактическом туристическом агентстве. Довольно часто ему приходится прокладывать путь с одной планеты на другую с использованием существующих рейсов космических кораблей. К сожалению, количество рейсов невелико, поэтому пассажирам часто приходится пересаживаться на промежуточных планетах.

Антон заметил, что некоторые планеты используются в качестве промежуточных чаще, чем другие. Он решил провести исследование – для каждой планеты A он хотел бы узнать, сколько существует пар различных планет (B,C), таких что любой путь с планеты B на планету C проходит через планету A.

Помогите Антону!
Входные данные

Первая строка входного файла INPUT.TXT содержит два целых числа: N и M – количество планет и количество рейсов космических кораблей, соответственно (2 <= N <= 20 000, 1 <= M <= 200 000). Следующие M строк описывают рейсы космических кораблей. Каждый рейс связывает две планеты, и им можно воспользоваться в любом из двух направлений. С любой планеты можно добраться до любой другой.
Выходные данные

В выходной файл OUTPUT.TXT выведите N целых чисел – для каждой планеты A выведите количество пар различных планет, таких что любой путь с одной планеты на другую проходит через A.


Уже долго мучаюсь с этой задачей. По-моему алгоритм решения таков: находим в данном графе точки сочленения, потом для каждой найденной точки удаляем все ребра исходящие из него, находим количество элементов в каждой получившейся компоненте связности и вычисляем количество пар вершин в этих компонентах. Если вершина не является точкой сочленения, то количество пар вершин равно N-1. Реализация данного алгоритма заваливается на первых тестах из=за неверного ответа. В чем я неправ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.