Статистика
Всего в нашей базе более 4 327 663 вопросов и 6 445 977 ответов!

Задача «Вирусы»

5-9 класс

Для моделирования различных объектов часто применяются так называемые клеточные поля. В простейшем случае – это прямоугольные таблицы, характеризующие некоторую область, а в каждой ячейке таблицы записывается какая-либо информация об исследуемом объекте. В биологии для моделирования распространения вирусов на плоской области в каждой ячейке помечается наличие вируса, а его распространение осуществляется в соседние ячейки по вертикали и горизонтали за одну единицу времени. Некоторые клетки обладают иммунитетом, заразить их невозможно и через них не распространяются вирусы. Требуется написать программу, которая определяет минимально возможное число вирусов, с помощью которых можно заразить всю исследуемую прямоугольную область (за исключением защищённых клеток).
Описание входных данныхВ первой строке входного файла input.txt записаны два натуральных числа n и m -размеры таблицы (количество строк и столбцов соответственно). Известно, что 1 n, m 100. Во второй строке вначале записано одно число k – количество защищённых клеток, а далее записаны 2k чисел – координаты этих клеток xi, yi (0 k n m, 1 xi n, 1 yi m).
Описание выходных данных
В единственную строку выходного файла output.txt нужно вывести одно число –минимально возможное число вирусов.
Примеры входных и выходных данных
input.txt
4 5 3 1 3 2 1 2 2
output.txt 2

Sawdsawd 22 сент. 2013 г., 6:43:07 (10 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
Zhanika14
22 сент. 2013 г., 9:01:40 (10 лет назад)

uses GraphABC;
const types = 3;
rmax = 4;
CanEat = rmax;
eps = 0.00001;
epsustupi = 0.1;
strahkraj = 3;
ustupi = CanEat*10;
BkColor = clBlack;
Height = 600;
Width = 780;
xmin = 10;
ymin = 10;
xmax = Width - 100;
ymax = Height - 140;
Type
fishtype = class
c, CanRazm, MaxKol, Kol, MaxLife, MinFood: integer;

Speed, See: real;
constructor create(ac, aCanRazm, aMaxKol, aMaxLife, aMinFood:integer; aSpeed, aSee: real);
begin
c:= ac; CanRazm:= aCanRazm; MaxKol:= aMaxKol; Kol:= 1;
MaxLife:= aMaxLife; MinFood:= aMinFood; Speed:= aSpeed; See:= aSee
end;
procedure ShowKol(y: integer);
var s: string;
begin
SetFontColor(c);
TextOut(xmax + 20, y, ' ');
str(Kol, s);
TextOut(xmax + 20, y, s);
end;
end;
var opisanie: array[0..types] of fishtype;
Type
fish = class
x, y, r, dx0, dy0: real;
tip, life, razm, status, food: integer;

next, prev: fish;
constructor Create(ax, ay, ar: real; atip: integer; aprev, anext: fish);
begin
x:= ax; y:= ay; r:= ar; tip:= atip; prev:= aprev; next:= anext;
life:= 0; razm:= 0; dx0:= random; dy0:= random; status:= 1; food:= 0;
end;
procedure show;
begin
SetPenColor(opisanie[tip].c);
circle(round(x), round(y), round(r))
end;
procedure hide;
begin
SetPenColor(BkColor);
circle(round(x), round(y), round(r))
end;
destructor Destroy;
begin
hide;
opisanie[tip].kol:= opisanie[tip].kol - 1;
opisanie[tip].ShowKol(tip*40 + 20);
end;
procedure moveto(dx, dy: real);
begin
hide;
x:= x + dx; y:= y + dy;
if x > xmax then x:= xmax;
if x < xmin then x:= xmin;
if y > ymax then y:= ymax;
if y < ymin then y:= ymin;
show
end;
procedure MakeDeti(var mama, StartAkula, KonAkula, StartKilka, KonKilka : fish);
var d: fish;
begin
razm:= 0;
food:= 0;
d:= fish.create(x, y, r, tip, mama, next);
next.prev:= d;
next:= d;
if mama = KonAkula then KonAkula:= d;
if mama = KonKilka then KonKilka:= d;
opisanie[tip].kol:= opisanie[tip].kol + 1;
opisanie[tip].ShowKol(tip*40 + 20);
end;
procedure step(var ribka, StartAkula, KonAkula, StartKilka, KonKilka : fish);
var i, imin: integer;
dx, dy, d, dx2, dy2, dmin: real;
t, trup, found: fish;
FoundOhot: boolean;
begin
status:= 1;
dx:= 0; dy:= 0;
if tip > 0 then
begin
t:= StartAkula;
if t<>nil then
repeat
d:= sqrt((x - t.x)*(x - t.x) + (y - t.y)*(y - t.y));
if d < opisanie[tip].See then
begin
if d < eps then d:= eps;
dx2:= (x - t.x)/(d*d);
dy2:= (y - t.y)/(d*d);
dx:= dx + dx2;
dy:= dy + dy2;
status:= 2;
end;
t:= t.next
until t = KonAkula.next;
if x - xmin < opisanie[tip].See then dx:= dx + 1/((x - xmin + eps)*strahkraj);
if xmax - x < opisanie[tip].See then dx:= dx + 1/((x - xmax - eps)*strahkraj);
if y - ymin < opisanie[tip].See then dy:= dy + 1/((y - ymin + eps)*strahkraj);
if ymax - y < opisanie[tip].See then dy:= dy + 1/((y - ymax - eps)*strahkraj);
d:= sqrt(dx*dx + dy*dy);
if d < eps then
begin
dx:= 2*status*random*opisanie[tip].Speed - status*opisanie[tip].Speed;
dy:= 2*status*random*opisanie[tip].Speed - status*opisanie[tip].Speed
   

Ответить

Другие вопросы из категории

Установить соответствие: Информационный процесс:

1.Хранение
2.Обработка
3.Передача
Примеры ,а).разговор 2 х друзей
б)песня по радио
в)перевод с английского на русский
г)фотографирование
д)
е)


Д) и е) свои примеры

Закончите фразы: Робот-это
Напишите программу для решения следующей задачи. Камера наблюдения регистрирует в автоматическом режиме скорость проезжающих мимо неё автомобилей, округ

ляя значения скорости до целых чисел. Необходимо определить максимальную зарегистрированную скорость автомобиля. Если скорость хотя бы одного автомобиля была меньше 30 км\ч, выведите YES, иначе выведите NO.

Программа получает на вход число проехавших автомобилей N (1=<N=<30), затем указывает их скорости. Значение скорости не может быть меньше 1 и больше 300.

Программа должна сначала вывести максимальную скорость, затем YES или NO.

Написать на языке Паскаль

Пример работы программы: (смотри во вложениях)

Читайте также

компьютерный вирус А заполняет 1 Гбайт за один месяц, вирус В заполняет 1 Гбайт за два месяца, вирус С за три месяца, вирус Д за шесть месяцев. На

компьютере одновременно обнаружены сразу все четыре вируса. Сколько гигабайт они заполнят за один месяц?

Решите задачу

Решите задачу с помощью рассуждения (рассуждения присылать тоже)
Задача: В одном доме живут 3 товарища: Вася, Боря и Дима.
Один из них играет в футбол, другой пишет стихи, а третий лучше всех играет в шахматы.
Известно : 1-ВАсин друг с огорчением сказал "Вчера я не сумел реализировать пинальти" 2-товарищ поэта сказал" Дима! Написал бы и ты что нибудь и для нашей футбольной команды"
Назовите имена футболиста, шахматиста, поэта (с рассуждением)

Помогите решить задачу!!!!

Очень нужно)
Задача 11!!!!!))))

Решите задачу 9 класс. Срочно! Много баллов!

Достаточно ли видеопамяти объемом 256 кбайт для работы монитора в режиме 640х480 и палитрой из 16 цветов.
Оформить как задачу (Дано, решение, все формулы и т.п)



Вы находитесь на странице вопроса "Задача «Вирусы»", категории "информатика". Данный вопрос относится к разделу "5-9" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.