ЗАДАЧИ
problems.ru
О проекте | Об авторах | Справочник
Каталог по темам | по источникам |
К задаче N

Проект МЦНМО
при участии
школы 57
Выбрана 1 задача
Версия для печати
Убрать все задачи

Имя входного файла:

stalker.in

Имя выходного файла:

stalker.out

Максимальное время работы на одном тесте:

2 секунды

Максимальный объем используемой памяти:

128 мегабайт

   

В городе Н при невыясненных обстоятельствах территория одного из заводов превратилась в аномальную зону. Все подъезды к территории были перекрыты, а сама она получила название промзоны. В промзоне находятся N зданий, некоторые из них соединены дорогами. По любой дороге можно перемещаться в обоих направлениях.

Начинающий сталкер получил задание добраться до склада в промзоне. Он нашел в электронном архиве несколько карт территории промзоны. Так как карты составлялись разными людьми, то на каждой из них есть информация только о некоторых дорогах промзоны. Одна и та же дорога может присутствовать на нескольких картах.

В пути сталкер может загружать из архива на мобильный телефон по одной карте. При загрузке новой карты предыдущая в памяти телефона не сохраняется. Сталкер может перемещаться лишь по дорогам, отмеченным на карте, загруженной на данный момент. Каждая загрузка карты стоит 1 рубль. Для минимизации расходов сталкеру нужно выбрать такой маршрут, чтобы как можно меньшее число раз загружать карты. Сталкер может загружать одну и ту же карту несколько раз, при этом придется заплатить за каждую загрузку. Изначально в памяти мобильного телефона нет никакой карты.

Требуется написать программу, которая вычисляет минимальную сумму расходов, необходимую сталкеру, чтобы добраться от входа в промзону до склада.

Формат входных данных

В первой строке входного файла находятся два натуральных числа N и K (2 ≤ N ≤ 2000; 1 ≤ K ≤ 2000) - количество зданий промзоны и количество карт соответственно. Вход в промзону находится в здании с номером 1, а склад - в здании с номером N.

В последующих строках находится информация об имеющихся картах. Первая строка описания i-ой карты содержит число ri - количество дорог, обозначенных на i-ой карте. Затем идут ri строк, содержащие по два натуральных числа a и b (1 ≤ a, bN; ab), означающих наличие на i-ой карте дороги, соединяющей здания a и b. Суммарное количество дорог, обозначенных на всех картах, не превышает 300 000 (r1 + r2 + ... + rK ≤ 300 000).

Формат выходных данных

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

Примеры

stalker.in

stalker.out

 

stalker.in

stalker.out

5 3

1

3 4

3

1 2

1 3

2 4

1

4 5

2

 

5 3

2

3 2

4 5

1

2 1

2

1 3

5 4

-1

   Решение

Задача 32807
Тема:    [ Выигрышные и проигрышные позиции ]
Сложность: 3
Классы: 7,8,9
В корзину
Прислать комментарий

Условие

В нижнем левом углу шахматной доски 8 на 8 стоит фишка. Двое по очереди передвигают её на одну клетку вверх, вправо или вправо-вверх по диагонали.  Выигрывает тот, кто поставит фишку в правый верхний угол. Кто победит при правильной игре?

Ответ

Назовем клетку доски выигрышной, если игрок, который ходит из этой клетки, выигрывает при правильной игре. Остальные клетки назовем проигрышными.
  Будем обозначать выигрышные клетки знаком "+", а проигрышные - знаком "-". Начнем заполнять доску. Клетки g7, g8 и h7 - очевидно, выигрышные, так как из них можно первым же ходом попасть в h8. Далее, клетки f8 и h6 - проигрышные, потому что из них можно попасть только в выигрышные клетки. Продолжая таким образом заполнять доску, увидим, что в клетке a1 стоит "+". Значит, при правилльной игре побеждает первый игрок.

Источники и прецеденты использования

Кружок
Название ВМШ 57 школы
класс
Класс 7
год
Год 2001/02
Место проведения 57 школа
занятие
Номер 6
Название На шахматной доске
Тема Неопределено
задача
Номер 05

© 2004-... МЦНМО (о копирайте)
Пишите нам

Проект осуществляется при поддержке Департамента образования г.Москвы и ФЦП "Кадры" .