Алгоритмы

590 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
1 - k BFS#21770
Дан ориентированный взвешенный граф. Необходимо найти расстояние от вершины 1 до всех остальных, используя алгоритм 1 - k BFS.
 
Входные данные
В первой строке даны 2 целых числа n и m, число вершин и ребер в графе соответственно. В следующих m строках дается по 3 числа a и b - вершины которые соединяет ребро и c - вес этого ребра (a, b, c >= 0).
 
Выходные данные
Необходимо вывести n-1 число через пробел - расстояния от вершины 1 до всех остальных, если нет возможного пути из 1 в i вершину, то необходимо вывести Impossible.
 

 

Примеры
Входные данные Выходные данные
1
9 9
1 2 1
2 4 2
4 6 1
4 3 1
3 5 2
5 6 1
8 9 100
9 7 100
7 8 100
1 4 3 6 4 Impossible Impossible Impossible 
 
✓ 68✗ 124800средняяВойти и решать
21752#21752
Как задается положение окружности на плоскости

1. координатами радиуса
2. координатами центра и длиной радиуса
3. длиной радиуса и его координатами
4. координатами диаметра и его длиной
21739#21739
В каком из вариантов ответов верно соблюден порядок осуществления информационных процессов?

1. сбор, передача, обработка, хранение
2. сбор, хранение, передача, обработка
3. сбор, обработка, хранение, передача
4. сбор, хранение, передача, обработка
21726#21726
Каким образом можно задать поиск точно по фразе?

1. с помощью логического ИЛИ
2. заключить фразу в кавычки
3. с помощью логического И
4. нет правильного ответа
 
Вам задан неориентированный связный граф с N вершинами и М ребрами (1 ? N ? 20000, 1 ? М ? 200 000). В графе отсутствуют петли и кратные ребра.
 
Найдите все точки сочленения в заданном графе.
 
Формат входного файла:
Граф задан во входном файле следующим образом: первая строка содержит числа N и М. Каждая из следующих М строк содержит описание ребра - два целых числа из диапазона от 1 до N - номера концов ребра.
 
Формат выходного файла:
На первой строке выведите число С - количество точек сочленения в заданном графе. На следующей строке выведите С целых чисел - номера вершин, которые являются точками сочленения, в возрастающем порядке. 
Количество операций
 
Дана программа сортировки (p141.pas). Требуется узнать, сколько раз
при сортировке конкретного массива с помощью этой программы
выполняется операция сравнения двух элементов массива (строка 25 программы).
 
Входные данные
Задано сначала число N (1≤N≤100), а затем N целых чисел, по модулю не превышающих 1000.
 
Выходные данные
Ваша программа должна печатать одно число - сколько
раз в процессе сортировки этого массива программой p141.pas выполнится
команда сравнения двух элементов массива.
 
Пример входного файла
5
3 1 2 4 2
 
Пример выходного файла
10

Текст программы p141.pas
const nmax=100;

var a:array[1..nmax] of integer;
    n:integer;
    i,j,g:integer;

    f1,f2:text;

begin
assign(f1,'input.txt');
reset(f1);
assign(f2,'output.txt');
rewrite(f2);
                                  {Чтение входных данных}
read(f1,n);
for i:=1 to n do read(f1,a[i]);
                                  {Сортировка массива}

for i:=1 to n do begin            {Подбираем число на i-ое место}

  g:=i;                           {Считаем, что самое маленькое число,
                                   которое нам встретилось, стоит на месте i}

  for j:=i+1 to n do              {Перебираем все числа с i+1 до конца массива}
    if a[j]<a[g] then g:=j;       {Если нашли число, которое меньше,
                                   чем то, что уже найдено, запоминаем его}

                                  {Меняем местами числа, стоящие на i-ом и
                                   на g-ом местах }
                                  {Если a[i]=x, a[g]=y, то после выполнения
                                   команды: }
  if i<>g then begin
    a[i]:=a[i]+a[g];                {a[i]=x+y, a[g]=y}
    a[g]:=a[i]-a[g];                {a[i]=x+y, a[g]=(x+y)-y=x}
    a[i]:=a[i]-a[g];                {a[i]=(x+y)-x=y}
                                  {То есть после этого a[i]=y, a[g]=x
                                   обмен значений произошел}
    end;

  end;

                                  {Выводим результат}
for i:=1 to n do
  write(f2,a[i],' ');
close(f1);
close(f2);
end.

18760#18760
Пользователь находился в каталоге Расписание. Сначала он поднялся на один уровень вверх, затем спустился на один уровень вниз, потом ещё раз спустился на один уровень вниз. В результате он оказался в каталоге C:\учёба\химия\ГИА Укажите полный путь каталога, с которым пользователь начинал работу.

1) C:\Расписание
2) C:\учёба\2013\Расписание
3) C:\учёба\химия\Расписание
4) C:\учёба\Расписание
18756#18756
Пользователь работал с каталогом Химия. Сначала он поднялся на один уровень вверх, затем спустился на один уровень вниз, потом ещё раз спустился на один уровень вниз. В результате он оказался в каталоге C:\Школа\Уроки\Информатика Запишите полный путь каталога, с которым пользователь начинал работу.

1) C:\Школа\Уроки\Химия
2) C:\Химия
3) C:\Школа\Уроки\Класс\Химия
4) C:\Школа\Химия
18749#18749

Пользователь находился в каталоге Расписание. Сначала он поднялся на один уровень вверх, затем спустился на один уровень вниз, потом ещё раз спустился на один уровень вниз и ещё раз спустился на один уровень вниз. В результате он оказался в каталоге C:\учёба\химия\ГИА Укажите полный путь каталога, с которым пользователь начинал работу.

1) C:\учёба\2013\Расписание
2) C:\учёба\Расписание
3) C:\учёба\химия\Расписание
4) C:\Расписание

18748#18748

Пользователь работал с каталогом C:\Компьютеры\Память. Сначала он спустился в каталог Винчестеры, после этого поднялся на один уровень вверх, затем ещё раз поднялся на один уровень вверх и далее спустился в каталог Процессоры. Укажите полный путь каталога, в котором оказался пользователь.

1) C:\Компьютеры\Процессоры
2) C:\Винчестеры\Процессоры
3) C:\Компьютеры\Память\Винчестеры
4) C:\Компьютеры\Память\Процессоры


18747#18747

Пользователь находился в каталоге Расписание. Сначала он поднялся на один уровень вверх, затем спустился на один уровень вниз, потом ещё раз спустился на один уровень вниз и ещё раз спустился на один уровень вниз. В результате он оказался в каталоге C:\учёба\информатика\ГИА Укажите полный путь каталога, с которым пользователь начинал работу. 

1) C:\учёба\2013\Расписание
2) C:\учёба\Расписание
3) C:\учёба\информатика\Расписание
4) C:\Расписание


18746#18746

Пользователь работал с каталогом Логика. Сначала он поднялся на один уровень вверх, затем поднялся ещё на один уровень вверх, потом спустился на один уровень вниз. В результате он оказался в каталоге C:\Школа\Уроки\Химия.
Запишите возможный полный путь каталога, с которым пользователь начинал работу.

1) C:\Школа\Уроки\Информатика\Логика
2) C:\Школа\Уроки\Логика
3) C:\Школа\Логика
4) C:\Школа\Информатика\Логика


Троллейбусы одного маршрута проходят через остановку каждые k (1<=k<=500) минут. Известны времена прихода пассажиров на эту остановку. Если пассажир приходит на остановку в момент прихода троллейбуса, то он успевает уехать на нем.
 
Напишите программу, которая бы определяла, во сколько должен пройти первый троллейбус (это время от 0 до k-1), чтобы:
1) Суммарное время ожидания троллейбуса для всех пассажиров было минимально.
2) Максимальное из времен ожидания троллейбуса было минимально.
 
Входные данные
В строке записано сначала число k, затем - число N (0<=N<=100000). Затем идет N чисел, задающих времена прихода пассажиров 
на остановку. Каждое из этих чисел - целое от 0 до 100000.
 
Выходные данные
Запишите два числа, являющиеся ответами на первый и второй вопросы задачи соответственно. 
Если решений несколько, выведите любое из них.

Примеры
Входные данные Выходные данные
1
100 5
0 210 99 551 99
10
51
 
 
15580#15580
Годовые оценки по девяти предметам за 9й класс каждого из N учеников класса напечатаны в виде таблицы (в первой строке - оценки первого ученика, во второй - второго и т.д.) Фамилия ученика записана в первом столбце. Необходимо вывести данную таблицу в алфавитном порядке (по возрастанию, начиная с A заканчивая Z)

Входные данные: на вход программе подаются
в первой число N - количество учеников, 1<=N<=25
далее идут N строк, в формате <фамилия-последовательность латинских символов> <оценка за 1й предмет> <оценка за 2й предмет>...  <оценка за 9й предмет>

Выходные данные: вывести на экран исходную таблицу, записанную в алфавитном порядке от A до Z

Примеры
входные данные
3
Sidorov 1 1 1 1 1 1 1 1 1 
Ivanov 5 5 5 5 5 5 5 5 5
Petrov 4 4 4 5 4 5 5 5 5
выходные данные

		
Ivanov 5 5 5 5 5 5 5 5 5
Petrov 4 4 4 5 4 5 5 5 5
Sidorov 1 1 1 1 1 1 1 1 1
 
1602#1602

В текстовом редакторе набран текст:
В НЕМ ПРОСТО НАХОДЯТСЯ ПРОЦЕДУРЫ ОБРОБОТКИ ДАТЫ И ВРЕМЕНИ ДНЯ, АНАЛИЗА СОСТОЯНИЯ МАГНИТНЫХ ДИСКОВ, СРЕДСТВА РОБОТЫ СО СПРАВОЧНИКАМИ И ОТДЕЛЬНЫМИ ФАЙЛАМИ.
Команда "Найти и заменить все" для исправления всех ошибок может иметь вид:

1.    найти РО заменить на РА
2.    найти БРОБ заменить на БРАБ
3.    найти Р заменить на РА
4.    найти РОБ заменить на РАБ

1453#1453

Пользователь работал с каталогом Участники. Сначала он поднялся на один уровень вверх, затем спустился на один уровень вниз, потом ещё раз спустился на один уровень вниз. В результате он оказался в каталоге C:\Конференция\Секции\Информатика
Запишите полный путь каталога, с которым пользователь начинал работу.

1) C:\Конференция\Регионы\Списки\Участники
2) C:\Конференция\Участники
3) C:\Конференция\Регионы\Участники
4) C:\Участники

1297#1297

Пользователь работал с каталогом C:\Учеба\Математика\Задания. Сначала он поднялся на один уровень вверх, затем еще раз поднялся на один уровень вверх и после этого спустился в каталог Биология, далее спустился в каталог Оценки. Запишите полный путь каталога, в котором оказался пользователь.


1)С:\Биология\Оценки
2)С:\ Оценки\Биология
3) С:\Учеба\Математика\Биология\Оценки
4) С:\Учеба\Биология\Оценки
Поделиться
Класснуть