Жадности. Время ввода/вывода. Разделяй и властвуй.

Четверг, 02 октября 2014
ФМЛ 239, Актовый зал

Описание

Задачи на сортировку и жадности

  1. Есть работы. У каждой работы есть $t_i$ -- время выполнения и $f_i$ -- штраф. Нужно минимизировать $\sum T_if_i$, где $T_i$ -- момент выполнения работы.

  2. Даны $n$ отрезков на прямой. Для каждого $k$ от $0$ до $n$ посчитать длину части прямой, покрытой ровно $k$ отрезками.

  3. Даны $n$ гномов. Если $i$-го гнома укладывать спать $a_i$ минут, он потом спит $b_i$ минут. Можно ли сделать так, чтобы все гномы уснули?

  4. Есть $n$ спортсменов. $i$-й спортсмен имеет вес $m_i$ и может держать на своих плечах суммарную массу $s_i$. Можно ли построить башню из всех спортсменов?

  5. Есть $n$ работ. У каждой есть дедлайн $d_i$ и время выполнения $t_i$. Можно ли успеть выполнить все работы?

Будем тестировать время ввода/вывода.

  1. C++ : cin/cout

  2. C++ : scanf/printf

  3. C++ : getchar/putchar

  4. C++ : fread, fwrite

  5. Java : Scanner, System.out

  6. Java : BuffredReader, PrintWriter

Метод разделяй и властвуй

  1. Сортировка слиянием и число инверсий (код)

  2. Карацуба и умножение длинных чисел