Pascal ABC

 

ГЛАВНАЯ
ССЫЛКИ
ОЛИМПИАДНЫЕ ЗАДАНИЯ
Очень простые

Проблема с A и B

Трамвайные билеты

Шифр Цезаря

Четные и нечетные члены последовательности

"Мы вас упакуем!"

Простые

Равновеликие прямоугольники

Скобки

 

Уравнение

 

Вирусы

 

КВН

 

Коррекция кода

 

Степень

 

Демократия в опасности

 

Пуговицы

 

A to B

 

Палиндромы

 

Почти Крэг Туми

 

Виза

 

Ездец

 
Средней сложности  

MIME64

 

Куль хацкеры

 

Редкое имя

 

Города

 

Исправления

 

Банки

 

2^n

 

Ниточка

 

Массивище

 

Знакомые

 

Считаем кораблики

Лошадью ходи!

Левые повороты

Прицельное метание помидор

Анаграммы

Треугольник

Принцип компании

Уникальная строка

Конфуз

K-ичные числа

Михаил Густокашин против бюрократии

Агенты

Игра в слова

Сложные

Диски

Домино

Монеты

Программистика

Хитрющая строка

Робот-сапер

Квадраты

Упаковка простых

Оппозиция

 

Замок

 

Многоугольники

 

Электронные часы

 

Дождик

 

Черепаха

 

Метро

 

Террористы

 

Школы

 
Очень сложные/особо интересные  

Система Защиты

 

Бизнес-классики

 

Телеметрия

 

Лесной пожар

 

Олимпиада

 

Автобусный диспетчер

 

 Кубики

 

Электронная почта

 

Автобус

 

 

 

 

ОЛИМПИАДНЫЕ ЗАДАНИЯ

Олимпиадные задачи с рекомендациями к решениям

Задача 9: Вирусы.

На поле размером n*n (n<=500) расположено m (1<=m<=10) вирусов. За каждый ход вирус заражает 4 соседние с ним клетки. Положение вирусов задано координатами на поле.
Определить, за какое наименьшее количество ходов будет заражено все поле.

Решение:
Эта задача была на командном турнире среди школьников и студентов, проводимом АО ICL КПО ВС, в Казани в 2000г.
Попробуем снова решить эту задачу. Рассмотрим возможность создания массива, изображающего игровое поле, которые будут заполняться по мере прохождения периода. Это приведет к необходимости сканирования массива 500*500 каждый период и достаточно сложным операциям над ним.
Представим, что у нас на поле один вирус и клетка с координатами X, Y и нужно определить, за сколько ходов данная клетка будет заражена. Это делается достаточно просто:
H = |X - I| + |Y - J| - где I, J - координаты вируса. Представим это на рисунке:

6543456
5432345
4321234
321*123
4321234
5432345
6543456

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

 

Далее ð





 


 

 

 
 

СЕРВИС

Copyright © 2008 СОШ №2 им. Н.П. Массонова г.Свислочь © Синица А.А.