Задача 10.
Имеется N человек и прямоугольная таблица А[1:N,1:N];элемент A[i,j] равен 1, если человек i знаком с человеком j, А[i,j] = =А[j,i]. Можно ли разбить людей на 2 группы, чтобы в каждой группе были только незнакомые люди.
|
Решение задачи 10.
Задача решается следующим образом. Выбирается произвольный человек и помещается в первую группу. Затем находятся люди, ему знакомые. Понятно, что они не могут находиться в первой группе, поэтому их необходимо поместить во вторую. Затем находятся люди, знакомые людям из второй группы. Понятно, что они не могут находиться во второй группе, поэтому их необходимо поместить в первую. Повторяя так поочередно для каждой из групп, мы придем к одной из ситуаций:
1. Какой-то человек сначала был помещен в одну группу, а потом должен быть помещен в другую. Понятно, что в этом случае задача не имеет решения.
2. Каждый человек помещен в одну из групп. В этом случае задача решена.
3. Не каждый человек помещен в одну из групп. Это означает, что оставшиеся не помещенные в группы люди не знакомы людям в группах (иначе они были бы куда-нибудь помещены). Следовательно, одного из них безразлично куда помещать, например в первую группу. Затем описанный выше процесс продолжается, пока не придем к ситуации 1. или 2.
|