Блог пользователя rembocoder

Автор rembocoder, история, 4 года назад, По-русски

Привет. Хочу поделиться простым методом сжатия координат. Справится даже начинающий.

vector<int> a(n);
// считываем вектор
vector<int> b = a;
sort(b.begin(), b.end());
map<int, int> m;
for (int i = 0; i < n; i++) {
    m[b[i]] = i;
}
for (int i = 0; i < n; i++) {
    a[i] = m[a[i]];
}

Теперь все значения массива лежат в [0, n). Самое удобное, что если вам нужно оригинальное значение a[i], можно просто написать b[a[i]].

А как это пишите вы?

Полный текст и комментарии »

  • Проголосовать: нравится
  • +21
  • Проголосовать: не нравится

Автор rembocoder, история, 4 года назад, По-русски

В этой теме описано, как пройтись по всем подмаскам данной маски без дополнительных памяти и времени. Мне стало нужно сделать то же самое для надмасок, но я не нашёл ничего подобного. Исходя из формулы mask ^ (~mask) = -1, мой брат сгенерировал следующий код:

    for (int over = (1 << n) - 1; over > 0; over = ((over - mask - 1) & ~mask) + mask) {
        cout << over << " ";
    }

Это и правда работает. Но нельзя ли это как-то упростить, чтобы было легче вспомнить это на контесте?

Полный текст и комментарии »

  • Проголосовать: нравится
  • +28
  • Проголосовать: не нравится

Автор rembocoder, история, 6 лет назад, По-английски

Did you see that #499 was made unrated? Is it a temporary thing or is it really unrated now? It would be very sad.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +18
  • Проголосовать: не нравится

Автор rembocoder, история, 7 лет назад, По-русски

Начну с ответа на вопрос. В этом сезоне места в гостинице для участников оплатил Сбербанк. Ещё летом мы уведомили организаторов о том, что поедем, но с составом определились лишь недавно. Но оказалось, что оплаченных мест уже нет, хотя был устный договор, что мы поедем по льготной цене. Я думаю, что так делать нехорошо. Может, это было недопонимание, но мне стало обидно, поэтому я расскажу свои впечатления от первой поездки, которая была этой зимой.

В тот раз взнос нам оплатил наш ректор, он составлял 1270 евро на человека на 10 дней. Нас поселили в тесном хостеле, где продували окна, а было довольно холодно. В итоге все в нашей команде заболели, а мне пришлось полгода лечиться от полученного там острого бронхита. Проживание 10 дней в том номере, в котором мы жили, на сайте хостела стоит 213 евро с человека. Кормили нас утром в хостеле, а днём выдавали из местного ресторана каждый день один и тот же бургер без всякого соуса и с недожаренной котлетой и банку колы. Вечером не кормили. Предположим, что тут бургер стоил 3 евро, банка колы – 1 евро. На десять дней – 40 евро. Оставшиеся 1017 евро должны были пойти на аренду помещения для контестов, зарплату преподавателям и развлечения. Предположим, что каждый преподаватель получил 1000 евро, их было не больше 10, а участников – где-то 100, значит, с каждого пошло не больше 100 евро. Писали мы в тесном, не предназначенном для этого месте, ноуты приносили свои. По информации на сайте, аренда этого помещения на 10 дней стоит 30 евро с человека. Развлечением была экскурсия в Sagrada Familia, которая стоит маскимум 24 евро.

Остаётся ещё 863 евро (> 2/3 взноса), которые пошли понятно куда. Это ещё не считая, что у данного мероприятия было несколько крупных спонсоров. Я денег сам не платил, так что не жалуюсь, но хочется донести эту информацию до тех, кто по-прежнему в это вкладываются. Задумайтесь, кому вы отдаёте свои деньги.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +397
  • Проголосовать: не нравится

Автор rembocoder, 13 лет назад, По-русски
Предлагаю сделать возможность оставлять один и тот же комментарий на двух языках для тех, кто хочет (так же, как сейчас блоги). Пишешь сначала на русском, потом нажимаешь кнопочку, переключаешься на английский и пишешь перевод.
Если у пользователя поставлен русский язык, то комментарий отображается на русском, английский - на английском.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +36
  • Проголосовать: не нравится