𝐑𝐨𝐨𝐭𝐓𝐨𝐨𝐥 𝐁𝐥𝐨𝐠
194 subscribers
570 photos
48 videos
5 files
60 links
ニャン
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️Разработчики Portal: Solver портировали игру на.. ноду Texture Sample

Респект за оптимизацию 👍
👍5🤯1
Задачка по С++ со звездочкой

Пока болею, заставили решил пройти олимпиаду по ИИ. Есть такая простая (на первый взгляд) задачка. Условия на картинке, ограничения:
- Максимальное время выполнения: 1 секунда
- Максимальное использование памяти: 256 МБ
- Стандарт С++: С++20
- Входные значения: В диапазоне от 1 до 10^18 (включительно)
- Цель: Добиться O(1) (Это реально)

Скажу сразу:
- Компилируемые языки будут эффективнее, чем интерпретируемые
- Используйте тип unsigned long long (а.к.а. uint64_t)
- Если решать задачу в лоб, у вас выйдет примерно O(2^(a+b)) - что овердохера

Оставлю тут небольшую обводку:
#include <iostream>
#include <cstdint>

uint64_t f(const uint64_t& a, const uint64_t& b){
// Реализация функции...
}

int main() {
uint64_t a, b;

std::cin >> a >> b;
std::cout << f(a, b);

return 0;
}


А дальше сами. Удачи :)

через пару часов пришлю подсказку
❤5🔥1🤯1
This media is not supported in your browser
VIEW IN TELEGRAM
❤4
Продолжая решать задачку со звездочкой

Все, кто пошли решать задачу "в лоб" - посочувствую вам. ибо... там буквально нечего делать ¯\_(ツ)_/¯

Вместо глухого расхода бумаги и времени, давайте лучше.. визуализируем задачу? В комментариях пришлю полный код (чтобы не переполнять этот пост)

Могу лишь намекнуть на то, что такое странное расположение a и b выбрано не случайно - это именно оси x и y в привычном понимании прямоугольной системы координат, сечете?
(Накинул еще немного цветов чисто для удобства)

Что могу сказать? Ну.... Диагональ всегда равна единице. То есть можно сделать неплохое умозаключение, что если a == b, то это будет единица, а это копеечка в оптимизацию как никак!

Но да ладно, сделаем важное наблюдение - Чем больше "a" и чем меньше "b", тем больше результат. Такое чувство, будто тут пахнет делением одно на другое....

Не сдавайтесь, мы совсем близко
🔥3❤1👍1
Ответ на задачу со звездочкой

сорьки, болею, сил нет часто писать посты

Как и говорил в прошлом посте, можно заметить закономерность, что чем больше "a" и чем меньше "b", тем ответ близится к "a" (Обратите внимание на горизонтальный ряд при b = 1 - он совпадает с числами в "a")

А также если привести пару контр-примеров, то можно заметить как "a" зависит от "b", это.... целочисленное деление!

Бинго, дамы и господа. Осталось только внести правки в код, и мы добились выполнение функции от O(2^(a+b)) до O(1)

Финальный код (ответ на задачу):
#include <iostream>
#include <cstdint>

uint64_t f(const uint64_t& a, const uint64_t& b)
{
if(a == 0 && b == 0) return 1;
if(a == 0 || b == 0) return 0;
if(a < b) return 0;

return a / b;
}

int main()
{
uint64_t a, b;

std::cin >> a >> b;
std::cout << f(a, b);

return 0;
}



Be smart. Think cold
🔥4❤1😍1
This media is not supported in your browser
VIEW IN TELEGRAM
❤3
Что ж, потеряшки этого мира, те кто сидят 25/8 перед кампухтером и умеют профессионально чинить чайники (но это не точно-)

С Днем Программиста вас, ребятки!

День выбран не случайно - сегодня именно 256-й день в 2025 году

А у нас число 256 не просто число - это кол-во уникальных значений, которые может хранить 1 байт (8 бит) - база всех языков программирования, архитектур процессоров и вообще всей IT вселенной хе-хе
❤7🥰1😁1🎉1
Чувствую себя богом кодинга
та почему опять вылетело
🥰3❤‍🔥1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Небольшая вырезка из переписи Бекенда
(Все работает оптимизированно и прямо в редакторе)
❤4🔥1🤯1
This media is not supported in your browser
VIEW IN TELEGRAM
❤3🤩1
Заставляет задуматься
🤔5🍾1
========
#news
========

Шаг Вперёд!
16 сентября в 19:00 выходит DevLog #4 !
В котором мы рассказали о многом из разработки проекта в больших деталях !
и даже поделились top secret фотографией генератора из редактора карт . . .
Также, мы более подробно затронули тему с "Планом разработки" и участники проекта углублённо поделились своим прогрессом из их сферы деятельности !

Увидимся на премьере, испытатели лаборатории Absolute !
https://youtu.be/K8LlJ6MprZE
❤4🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
💘2
Просто шастал по коду Анрила и заметил интересную вещь - в НЕ финальных версиях сборок есть разные рода защит от ошибок, как например ошибка от создания двойного класса

Защита от повторного создания одного и того же сабобъекта. Нам нужно проверять только имя, так как ConstructObject всё равно выдаст ошибку, если объект с таким же именем, но другим классом уже существует.

Это еще раз подтверждает, что в финальной сборке вся ответственность за код лежит на программисте, а не движке
❤2🤔1🤝1
Невидимый результат - самый ценный, ведь именно он рождает будущее

Да-да, ребятки, наконец-то закончил с переписью и рефакторингом этого ШедевроБекенда: ура-ура-ура...

Но если серьезно... Было невыносимо сложно: Сонные глаза, говнокод (написанный в короткие сроки), выкидоны Анрила и мольбы всем святым чтобы опять не заруинить проект

Что изменилось? Ну, удалено более 20 блюпринтов (остались только менюшки), теперь все спавнится как чистый С++ класс. Также переименовал старые название переменных/классов, и отсортировал все

А так, признаюсь, если за всю неделю спать по 3-4 часа в сутки, то начинаешь уставать... 💀 Но осталось дело за малым: Добавить долгожданную кастомизацию на UI, закончить с панелью веры, изучить API GameJolt'a для таблицы рекордов и составить парочку новых тестовых камер. Впрочем, сегодня знаменательная ночь, триумф я бы даже сказал.. Думаю можно поделиться своим вайбом кодера без личной жизни

и отвечая сразу: да, сука, я буду писать код пока живой! хвхвхв

Relax and sleep. Think cold.
❤2🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
❤2