[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Олимпиадные задания и PHP
Xsoo
Здравствуйте!
У меня намечается городской этап олимпиады по программированию, там можно выбрать из нескольких языков прог., я выбрал PHP.
Собственно, проблема:
Есть задание:
Школа №666 выиграла грант, и на полученные средства заказала фирме «Пупкин-Инвест» создание общешкольной компьютерной сети. В школе всего N компьютеров, поэтому фирме заказали проложить N-1 соединительный кабель так, чтобы любой из компьютеров оказался связан по сети с любым другим. К несчастью, как сам Пупкин, так и все сотрудники его фирмы учились ранее в школе №666. Поэтому, когда все соединительные кабели были уложены и подключены к компьютерам, выяснилось, что далеко не все компьютеры «видят» друг друга. Когда руководство школы взглянуло на отчёт, представленный фирмой, оно с ужасом обнаружило, что фирма соединила кабелями первые попавшиеся компьютеры, поэтому вместо единой школьной сети получилось много маленьких локальных сетей. Теперь нужно срочно определить, сколько ещё кабелей необходимо уложить, чтобы получилась общешкольная сеть.

Вход
В первой строке входного файла записано натуральное число N – количество компьютеров (2 <= N <= 1000). В следующих N-1 строках записаны пары чисел u, v – номера компьютеров, которые сейчас соединены кабелями (1 <= u, v <= N). Никакая пара компьютеров не соединена более чем одним кабелем. Ни к какому компьютеру не подключено более 10 кабелей.

Выход
Запишите в выходной файл минимальное количество дополнительных кабелей.


КАК такое можно вообще реализовать на php?
Не думайте, что я нуб просто я не привык решать проблемы, которые у меня ассоциируются с прикладными программами, на серверном языке.
Может кто-нибудь уже решал подобные проблемы(возможно кто-то и в олимпиаде такой учавствовал:)), и сможет разьяснить алгоритм...



Спустя 22 минуты, 56 секунд (27.11.2011 - 13:43) inpost написал(а):
А тут программированию нет места! Математика и банальная формула.

Спустя 6 минут, 59 секунд (27.11.2011 - 13:50) Placido написал(а):
Вам сюда, как я понимаю. Всего-то посчитать количество сочетаний из N по 2 и вычесть количество проложенных кабелей (пар соединенных компьютеров). А формулу факториала можно написать на любом языке.

Спустя 1 минута, 13 секунд (27.11.2011 - 13:51) Invis1ble написал(а):
школа #666.... laugh.gif

Спустя 34 минуты, 23 секунды (27.11.2011 - 14:26) Xsoo написал(а):
Спасибо за ответы!
Я еще помозгую.

Спустя 1 минута, 33 секунды (27.11.2011 - 14:27) Xsoo написал(а):
Кстати - насчет "программированю нет места" - по задаче нужно написать прогу которая сохраняет результ в файл)

Спустя 1 час, 21 минута, 27 секунд (27.11.2011 - 15:49) inpost написал(а):
Xsoo
Для тебя проблемно воспользоваться штатными функциями file в языке программирования php ? Так зачем тогда подписался на пхп? smile.gif

Спустя 11 дней, 17 часов, 48 минут, 52 секунды (9.12.2011 - 09:38) Michael написал(а):
Цитата (inpost @ 27.11.2011 - 12:43)
А тут программированию нет места! Математика и банальная формула.

ну ты жжешь laugh.gif . В городской олимпиаде по программированию нет места программированию ... blink.gif мда, думал бы хоть что говоришь.
Да тут только одно программирование и есть.
Это задача из теории графов. Нужная сеть - это Связный граф. Вот по этому и гугли алгоритмы решения, если самому подумать не получается. Вот например что то близкое.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.