Повідомлень: 43 Звідки: school Зареєстрований: 29.12.07
Опубліковано 22-07-2008 11:55
Ось задачка :
N (2 <= N <= 10,000) коров готовятся к танцам с веревками.
Сначала они становятся вкруг по часовой стрелке с номерами
последовательно от 1 до N. Затем они берут M (2 <= M <= 50,000)
веревок, которые привязываются к левым и правым копытам.
Для того, чтобы Круговой Танец оказался успешным для заданной
коровы (например, Бесси), ее веревки должны быть правильно
сконфигурированы. Для этого нужно проанализировать всех привязанных
к ней коров, а также всех коров привязанных к этим коровам и т.д.
Когда Бесси танцует по часовой стрелке вдоль круга, она постоянно
тянет по часовой стрелке всех других коров своей группы. Если же
Бесси танцует против часовой стрелки, то она и и тянет всех своих
коров против часовой стрелки.
Понятно, что если веревки неправильно распределены, то
некоторое множество коров может не сформировать правильную группу
- и они не смогут танцевать Круговой Танец.
Например, так случается, если только одна веревка соединяет две
коровы. Одна корова может тащить другую в одном направлении, но
не сможет - в другом.
По заданному распределению веревок между коровами определите,
сколько групп коров смогут выполнить "Круговой Танец"?
PROBLEM NAME: prom
INPUT FORMAT:
* Строка 1: Два разделенных пробелом целых числа: N и M
* Строки 2..M+1: Каждая строка содержит два разделенных пробелом
целых числа A и B, которые описывают веревку от коровы A
до коровы B в направлении по часовой стрелке.
SAMPLE INPUT (файл prom.in):
5 4
2 4
3 5
1 2
4 1
INPUT DETAILS:
Изобразить такие танцы в текстовом формате достаточно трудно, тем
не менее ниже предпринята попытка:
* Строка 1: Одно целое число - количество групп, которые смогут
успешно станцевать Круговой Танец.
SAMPLE OUTPUT (файл prom.out):
1
OUTPUT DETAILS:
Коровы 1 2 4 связаны правильно и смогут станцевать Круговой Танец.
Коровы 3 и 5 не имеют второй веревки, которая им нужна,
чтобы они могли двигаться в обоих направлениях, поэтому они не могут
сформировать вторую группу для Кругового Танца.
плз допоможіть знайти спосіб її розв"язання...
Я вважаю, що потрібно: Представити граф в вигляді списку ребер, об"єднати вершини в компоненти і порахувати в скількох компонентах існують цикли, що складаються з всіх вершин цієї компоненти!
Як ви думаєте, пройде таке рішення?!
Якщо так, то як швидко перевірити чи компонента цикл ?!
Цікавий момент із назвою і казучкую у задачі. У більшості випадків якщо там згадується про корову (cow), то ця задача буде із USACO. Автору дуже подобаються ці милі створіння.
Повідомлень: 87 Звідки: СЗШ 17 м. Бердичів Зареєстрований: 11.06.07
Опубліковано 26-07-2008 20:26
webmaster написав:
Цікавий момент із назвою і казучкую у задачі. У більшості випадків якщо там згадується про корову (cow), то ця задача буде із USACO. Автору дуже подобаються ці милі створіння.