Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Конкурсы и Олимпиады по Машинному программированию (КОМП)


Информационный Канал Subscribe.Ru

Разбор задачи-заявки

Прошла неделя конкурса. Некоторые участники добрались до третьего уровня. Наверное, многие участники догадались, что этот конкурс посвящён теме "Графы". Эта тема очень велика, здесь мы посмотрим только маленькую часть.

Посмотрим, на что была рассчитана задача нулевого уровня. Она была рассчитана на использование матрицы связности (что это, ищите в теории графов). В нашем случае эта матрица это квадратный массив 26x26 (A..Z,A..Z), где на пересечении указано, являются ли соседями индексы строки и столбца. Тогда решением задачи будет заполнение матрицы связности, а затем вывод одной строки этой матрицы.

Вот пример программы, которая решает эту задачу.

program Task0;
type
   BLchar = 'A'..'Z';
var
  A : array [BLchar, BLchar] of boolean;
  i,
  j : BLchar;

  X : BLchar;

  N : byte;
  k,
  p,
  f : byte;
  S : string;

begin
  for i:='A' to 'Z' do
    for j:='A' to 'Z' do A[i, j]:=false;
  readln(N);
  for k:=1 to N do
  begin
     readln(S);
     for p:=1 to length(S) do
        for f:=1 to length(S) do
          A[S[p],S[f]]:=true;
  end;
  readln(X);
  for i:='A' to 'Z' do
    if (A[X,i]) and (i<>X) then write(i);
  writeln;
end.

Для решения следующих задач рекомендую почитать что-нибудь по теории графов.



Автор: Пупышев Вячеслав Викторович   
e-mail: pvv@uni.udm.ru   
Web: http://colymp.da.ru   

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.comp
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное