Какие шаги необходимо включить в словесный алгоритм для решения задачи: "N отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей" из предложенного набора:
Решение олимпиадных задач по информатике
Какие шаги необходимо включить в словесный алгоритм для решения задачи: "В строке, содержащей арифметическое выражение проверить, правильно ли расставлены скобки" из предложенного набора:
A. исходные данные вводим в массив
B. массив Flag заполняется "1" (если имеющий такой же порядок элемент массива исходных данных соответствует началу события, связанного с этим данным), "-1" (соответствует окончанию события)
C. сортируем массив исходных данных, одновременно переставляя элементы массива Flag
D. суммируем элементы массива Flag. Анализируем сумму.
Какие шаги необходимо включить в словесный алгоритм для решения задачи: "В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется" из предложенного набора:
Ниже приведен фрагмент программы, реализующий алгоритм решения задачи: "N отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей":
…//заполнение массива a (координаты концов отрезка), массива flag ("1" и "-1")…//сортировка массива а с перестановкой элементов массива flag (в соответствии с перестанавливаемыми элементами массива а) …for i=1 to 2*n do begin s:=s+flag [i]; if s=0 then k:=k+1; end;writeln ('количество связных областей', k);…
Сколько связных областей дадут два отрезка, имеющие одну общую координату (начало одного совпадает с концом другого)?
В решениях приведенных ниже задач:
А."В строке, содержащей арифметическое выражение проверить, правильно ли расставлены скобки";
В."В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется";
С."N отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей"
элементы массива флажков, отмечающих наступление-окончание события, на этапе заполнения начальных значений примут такие значения:
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, массив Flag будет содержать:
…for i:=1 to 10 do begin a[i]:=i; flag[i]:=0;endfor i:=2 to 10 div 2 do if flag[i]=0 then for j:=i+1 to 10 do if (a[j] mod a[i]=0) then flag[j]:=1;…
…n:=5;for i:=1 to n do a[i]:=i;for i:=2 to n div 2 do if flag[i]=0 then for j:=i+1 to n do if (a[j] mod a[i]=0) then flag[j]:=1;…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, массив Flag будет содержать:
…readln (n);for i:=1 to n do a[i]:=i;for i:=2 to n div 2 do if flag[i]=0 then for j:=i+1 to n do if (a[j] mod a[i]=0) then flag[j]:=1;…
Для решения приведенных ниже задач:
- В строке, содержащей арифметическое выражение проверить, правильно ли расставлены скобки;
- В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется;
- N отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей.
необходимо воспользоваться типовыми алгоритмами:
В решениях приведенных ниже задач:
А."В строке, содержащей арифметическое выражение проверить, правильно ли расставлены скобки";
В."В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется";
С."N отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей"
используются типовые алгоритмы:
Ниже приведен фрагмент программы, реализующий алгоритм решения задачи: "В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется":
…//заполнение массива a (временем прихода и ухода сторожа), массива flag ("1" и "-1")…//сортировка массива а с перестановкой элементов массива flag (в соответствии с перестанавливаемыми элементами массива а) …for i=1 to 2*n do begin s:=s+flag [i]; if s=0 then k:=k+1; end;writeln ('количество случаев неохраняемости галереи')writeln (k-1);…
Какое количество случаев неохраняемости галереи выдаст программа, если время ухода одного из сторожей совпадает с временем прихода его сменщика?