Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
Вернуться
Тема: 1414 - TL при выполнении теста 9: подскажите идею решения, т.к. "в лоб" задача тривиальная
1
  1  Федосеев Павел, 13 августа 2022 г. 21:54:06
      Спасибо.
  2  Меньшиков Фёдор Владимирович, 13 августа 2022 г. 14:10:12
      Ещё я крайне рекомендую обращать внимание на процент сложности задачи. У 1414 этот процент 68. У других задач, которые Вы за последнее время решали - от 2 до 40. Что намекает, что Вы можете быть просто не готовы решить эту задачу или возможно даже не готовы разобраться в подсказке относительно решения этой задачи. Мне кажется разумно переходить к решению задач сложности 68% после решения хотя бы десятка задач на 5-10% меньшей сложности. А к ним - после решения задач ещё меньшей сложности. Если Вы от 40 дойдёте до 68 с шагом примерно 5, то у Вас уже будут вопросы по задачам близким к Вашему уровню, а значит, Вы сможете легко воспринять подсказку по такой задаче.
  3  Меньшиков Фёдор Владимирович, 13 августа 2022 г. 14:03:28
      Ваши попытки как-то ускорить говорят о том, что Вы не можете оценить скорость работы Вашей программы. Так вот на компилируемых языках вроде используемого Вами Free Pascal базовая оценка количества операций - 100 млн операций в секунду. Если операция тяжёлая вроде sin, то может в 2-3 раза меньше, если лёгкая (какой-нибудь цикл поиска символа в строке) может и в 10 раз быстрее быть. Но базовая оценка такая.

Отсюда следует, что при ограничении в задаче 500 тыс дней и 500 тыс объектов посещения наивный алгоритм будет выполнять 25e10, что куда больше 5e8 оценки для 5 секунд. Это нужно было оценить сразу и не писать даже этот вариант. И уж тем более не пытаться ускорить ввод/вывод.
  4  Федосеев Павел, 12 августа 2022 г. 22:47:09
      Задача 1414 - Многословие проходит первые 8 тестов и "заваливает" 9 по лимиту времени.

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

Пробовал ускорить заменой консольного вывода выводом в файл с увеличением размера текстового буфера (со 128 Байт до 32 кБайт), но безрезультатно.

Подскажите, каким подходом ускорить выполнение.
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru