Всем привет!
АСМ карьера кончилась и я решил запустить канал на ютубе с фишечками и другим контентом! Пока что в планах выпускать видео, больше ориентированные на div 1 (ведь по простым темам уже есть 100500+ разных видосов)
Все срочно ставим лайк и подписываемся на канал, чтобы не пропустить следующий выпуск!
P. S. А если хотите предложить свою фишку, то пишите мне в личку (на кф или в вк)
Классное видео, но я бы на твоём месте поработал над названием, например: "Китайская теорема об остатках — то, о чем Сергей Семёнов не рассказывал Диане Шурыгиной"
Мдаа.. опять кремлеботы поработали..
Может от проца зависит, а не от ОС?
Я не уточнил это в видео, но речь про компиляторы c++ (а именно mingw vs gnu). Именно они оптимизируют взятие по модулю по-разному.
Так как mingw юзает gnu, то дело даже не в компиляторах, можно считать, что они одинаковые =)
На самом деле важно то, что на КФе 32-разрядная система, а на csacademy — 64-х разрядная. Объясню почему:
Во-первых, чисто из анализа алгоритмов:
binpow делает в среднем операций int64 % int32
magic делает в среднем операций int32 % int32, и столько же операций int64 / int32, и много чего лишнего из-за рекурсии.
В 64-разрядной системе при константом модуле в binpow'e целочисленное деление на константу оптимизируется умножением и битовыми сдвигами, отсюда такой выигрыш в производительности. В 32-разрядной системе такие оптимизации не работает, там в принципе отсутствуют команды для 64-битной арифметики, поэтому binpow не оптимайзится и соответственно выполняет больше сложных операций, от того и работает медленнее.
При неконстантном модуле magic должна работать быстрее и там, и там.
Нельзя, потому что разные версии компиляторов, разные сборки (с разными ключами и конфигами), разные режимы работы (например, обработка исключений), разные стандартные библиотеки.
Подрубай лучше на твиче стримы, и побольше экспрессии от неудачных попыток.
Стримы доты вернутся?
Мы сначала ммр поднимем чуть-чуть, чтобы радовать любимых подписчиков.
Хороший канал и фишечки регулярно выходят