успею ли выйти на призовые места и т.д. и т.п.?
Вот тебе список из 30 топовых заданий по олимпиадному программированию. Взял из личного опыта, олимпиадных архивов, классики и того, что реально прокачивает мозги. Сначала идут задачи-«must have», потом — для бодрого челленджа и разогрева с разными алгоритмами и структурами данных. Некоторые названия формулирую вольготно, чтобы не звучало как пересказ boring списка с acmp/Codeforces. Если нужна подробная формулировка какой-то — скажи, расшифрую любую.
⸻
Топ 30 заданий по олимпиадному программированию
1. Двоичный поиск на массиве
Классика: найти элемент в отсортированном массиве, или позицию вставки.
2. Сортировка слиянием/быстрая сортировка
Написать одну из них с нуля, желательно обе.
3. Поиск суммы в подмассиве (префиксные суммы)
Для каждого запроса на диапазон — выдать сумму элементов.
4. Кратчайший путь в графе (алгоритм Дейкстры)
Реализация для графа с неотрицательными рёбрами.
5. Обход графа (BFS/DFS)
Вычислить компоненты связности, циклы, топологическую сортировку.
6. Задача о рюкзаке (динамическое программирование)
Классический 0/1 knapsack.
7. Динамика по строке: наибольшая общая подпоследовательность (LCS)
Две строки — ищем длину максимальной общей подпоследовательности.
8. Поиск подстроки (алгоритм Кнута-Морриса-Пратта)
Найти все вхождения подстроки в строку.
9. Наибольшая возрастающая подпоследовательность (LIS)
DP + бинарный поиск.
10. Сортировка топологическая (граф без циклов)
Выстроить вершины в порядке зависимостей.
11. Система непересекающихся множеств (DSU/Union-Find)
Следить за компонентами графа при объединениях.
12. Поиск в ширину в лабиринте
Минимальное число шагов от точки А до Б по клеткам.
13. Задача о скобках (балансировка)
Проверить, правильная ли последовательность скобок.
14. Максимальное дерево отрезков (Segment Tree)
Ответ на запросы суммы/максимума на отрезке.
15. Обратный путь Фибоначчи (DP)
Сколько способов дойти до клетки N, двигаясь по правилам.
16. Решето Эратосфена
Все простые числа до N.
17. Задача о друзьях (DFS на компоненту связности)
Сколько компаний друзей по парным знакомствам.
18. Самый длинный палиндром в строке (Manacher’s algorithm)
Найти максимальный палиндром.
19. Быстрая экспонентация (быстрое возведение в степень)
Вычислить A^B по модулю M.
20. Минимальный остов (алгоритм Крускала или Прима)
Найти минимальный скелет графа.
21. Самая глубокая вложенность (скобки, рекурсивные структуры)
Найти максимальную глубину вложенности.
22. Два указателя (длина минимального подмассива с заданной суммой)
Метод двух указателей на массиве.
23. Самый длинный периодический префикс (Z-функция)
Z-функция для поиска периодов в строке.
24. Комбинаторика: количество способов разложить N в сумму K слагаемых
DP, разбиения чисел.
25. Алгоритм Флойда–Уоршелла (все пары кратчайших путей)
Матрица расстояний в графе.
26. Жадный алгоритм сдачи (размен монет)
Минимальное количество монет.
27. Обход дерева: прямой/обратный/симметричный
DFS в дереве.
28. Обработка запросов: RMQ с построением Sparse Table
Быстрые запросы минимума на отрезке.
29. Поиск циклов (DFS, топологическая сортировка)
Проверка на циклы в графе.
30. Модульное деление, обратный элемент по модулю (Ферма/Евклид)
Найти обратный элемент по модулю.
⸻
Бонус:
• «Число инверсий в массиве» (сортировка слиянием+подсчёт)
• «Максимальная площадь прямоугольника в гистограмме»
• «Поиск эйлерова/гамильтонова пути»
• «Минимальное окно, содержащее все символы другой строки»
⸻
Если нужно подробное описание любой задачи или решение на конкретном языке (PHP, JS, MySQL, ну, вдруг ты решил всех удивить олимпиадой на Yii2 — ну что ж…), пиши номер задачи или суть, разжую по косточкам, не пожалею слов и шуток.
Хочешь что-то для командных олимпиад или больше математики? Тоже подкину!
Дальше — твой ход. Что-то из этого зацепило?
1. Если читать "отзывы", то у них там вообще 1% за 1 час уходит в офисных задачах. Удивлён, что не пишут "когда стоит без дела - самозаряжается". Какой будет разряд в час при нагрузке: браузер + текстовый редактор + веб-сервер? Какой расход будет в photoshop в час?
2. Что с нагревом? Допустим в браузере он будет холодным (холодным же, да?). Но если серьёзно, то видел несколько отзывов, где писали, что даже в браузере перегрев может быть. Правда? Если работаю в photoshop с макетом сайта - станет некомфортно горячо на коленях?
3. По поводу мощности. Вроде как photoshop, говорят, оптимизирован и на M процессорах он работает превосходно, поэтому хочу уточнить: те, кто работал за windows десктопом и на Apple M - вы разницу ощущали?
Ну и извечный вопрос: 16гб в маке хватит для моих задач?
или не очень дорогих
WinCP (два окна с SSH, FTP)
Как быть на macos?
На хостинге есть видео. Размер видео 100 Мб.
Видео запускается через тег video
На смартфонах такое разрешение не нужно.
К примеру, на десктопах показываем исходник = 1080, на планшетах = 720, на смартфонах = 560.
SELECT * FROM
(SELECT max(id) as maxId, from_id
GROUP BY from_id
WHERE from_id in (1,2,3)
ORDER BY maxId desc
) as t1
INNER JOIN messages m on t1.maxId = m.id
// Подзапрос для получения maxId и from_id
$subQuery = (new Query())
->select(['maxId' => 'MAX(id)', 'from_id'])
->from('messages')
->where(['from_id' => [1, 2, 3]])
->groupBy('from_id')
->orderBy(['maxId' => SORT_DESC]);
// Основной запрос с INNER JOIN
$query = (new Query())
->select('*')
->from(['t1' => $subQuery])
->innerJoin('messages m', 't1.maxId = m.id');
// Выполнение запроса
$results = $query->all();
// Создаем объект DateTime с текущей датой
$date = new DateTime();
// Вычитаем 100 дней
$date->modify('-100 days');
// Выводим результат в нужном формате
echo $date->format('N'); // 1 (понедельник) до 7 (воскресенье)
Руководитель поставил задачу подобрать тайм-трекер