Чисто заменой TreeSet на что-то другое улучшить асимптотику очевидно не удастся
Всё-таки любопытно, какая нижняя граница для этой задачи в худшем? Не очевидно, что сортировка по стоимости работ обязательна. По крайней мере, если у всех работ дедлайн равен

, то работы можно выполнить вообще в произвольном порядке. А если дедлайны работ - это все различные числа в диапазоне от

до

, то отсортировать их по дням можно за

. И если все дедлайны одновременно равны

, то задача, тоже, имеет асимптотическую сложность

.
О! На самом деле, нас не просят рассортировать работы по дням, а спрашивают, какая максимальная прибыль? Но мы можем узнать за

сколько работ Вася не успеет выполнить в
каждый день дедлайна при использовании им оптимальной стратегии. А значит, мы знаем, от скольки всего работ придётся отказаться. Значит, считаем, сколько

работ будет выполнено, и берём сумму стоимости

работ с максимальной стоимостью. Асимптотически это

.
UPD А, нет, не всё так просто.