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

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


 
Вернуться
Тема: Почему HashSet<Long> получает ML (в задаче он 32Мб) при хранении 850К элементов на 737 задаче, а unordered_set в C++ - нет?
1
  1  Егоров Илья Валерьевич, 30 мая 2019 г. 0:09:24
      У Python почти все проблемы с потреблением памяти завязаны даже не на этом: банально упирается в убогую по потреблению ресурсов систему ввода-вывода (читать строками вместо чтения токенами -- изначально плохая мысль). А проблемы с памятью на Java могут быть и гораздо наивнее: неподходящий размер емкости (HashSet -- структура динамическая, как ни как). А так стоит заметить, что простое решение на Java жрет меньше, чем простое решение на C++ (увы, но чем новее версия компилятора (в частности, GCC), тем больше потребляется память бинарником).
  2  Меньшиков Фёдор Владимирович, 11 марта 2019 г. 17:06:49
      Вероятно потому, что Long в Java это объект - ссылка + содержимое порядка 20 байтов занимают, а long long в C++ просто 8 байт. А ещё можно попробовать администратора попросить поднять Memory Limit по конкретной задаче. Ради Python были прецеденты. Ради Java тоже.
1

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

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