1

Тема: Импульсные сигналы

F Импульсные сигналы
Некоторая сеть связи содержит N  генераторов импульсных сигналов, в составе которых имеется
внутренний  счетчик.  Линии  связи  двунаправленные  и  между   двумя  генераторами  может быть
только одна линия связи. Изначально все генераторы выключены и их счетчики установлены в ноль.
Во включенном состоянии каждый генератор отправляет сигнал с интервалом в одну секунду всем
соседним генераторам в сети, если таковые имеются. Если к генератору приходит сигнал по линии
связи,  то его внутренний  счетчик увеличивается на единицу. Если генератор был выключен при
получении сигнала, то он включается и увеличивает свой счетчик на единицу, и через 1 секунду
рассылает свой первый сигнал. В момент времени 0 включается и отправляет свой первый сигнал
генератор номер 1. От вас требуется определить состояние счетчиков всех генераторов в момент
времени T (через T полных секунд, т.е. сигнал, прошедший на секунде T, считается обработанным).

Формат входных данных
Первая строка входного файла содержит целые числа N и M (1 ? N ? 100, 1 ? M ? 10000) – число
генераторов и число линий связи в сети. Следующие M строк содержат по два различных числа –
номера генераторов соединенных между собой в сети. Генераторы нумеруются от 1 до  N. Далее
следует целое число T (1 ? T ? 1000000000). Числа в строках разделены пробелами.

Формат выходных данных
Выходной файл должен содержать N разделенных пробелами чисел – показания счетчиков через T
полных секунд для всех генераторов, приведенные последовательно от 1-го до N-го генератора.

например:
input.txt
2 1
1 2
10
output.txt
10 11

2

Re: Импульсные сигналы

Я бы пустил обход в глубину и нашёл бы  рассояние от 1 до всех остальных вершин.Потом рассматриваем каждую вершину и её ребра.При рассмотрении ребра u-v к внутреннему счётчику count(u) добавляем (t-dist[v]+1),то есть количество импульсов,которые пустит вершина v в вершину u с момента её включения.

3

Re: Импульсные сигналы

ага, как сказал уже coder.ua можно легко определить по формуле T - <расстояние до i вершины от начальной> + 1 сколько раз будет пускать импульс вершина i. Но хочется уточнить что для ребра U->V надо не только увеличивать count(U), но и также count(V).

4 Отредактировано coder.ua (2010-03-20 10:42:26)

Re: Импульсные сигналы

Возможно,но я учитывал реализацию связным списком рёбер,то есть ребро (u,v) будет рассмотрено как (u,v) так и (v,u)  cool