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

Автор Gerald, 10 лет назад, По-русски

411A - Проверка пароля

В первой задаче нужно было аккуратно реализовать написанное в условии. Например, так:

string s;
cin >> s;
bool upper = false, lower = false, digit = false;
for(int i= 0; i < s.size(); ++i){
    if(isupper(s[i]))
        upper = true;
    if(islower(s[i]))
        lower = true;
    if(isdigit(s[i]))
        digit = true;
}
puts((upper && lower && digit && s.size() >= 5) ? "Correct" : "Too weak");

411B - Многоядерный процессор

В этой задаче важно было внимательно прочитать условие и разобрать несколько принципиальных случаев. Далее нужно было аккуратно реализовать в коде разбор случаев. Авторское решение делало это следующим образом:

  1. Будем хранить массивы blockedCell[] (значение в ячейке i равно 1, если соответствующая клетка заблокирована, и 0 иначе), blockedCore[] (значение в ячейке i равно 0, если соответствующее ядро еще не заблокировано, и номеру такта, когда ядро заблокируется, иначе).
  2. Будем итерироваться по тактам начиная с первого. Рассмотрим некоторый такт k.
  3. Проходом по процессорам пересчитаем, какие ячейки заблокируются на такте k. Выставим в соответствующих ячейках массива blockedCell[] единицы.
  4. Далее, для каждого ядра i, если выполняется условие ([blockedCore[i] равно 0] И [blockedCell[x[i][k]] равно 1]), тогда ядро i заблокируется на такте k. Запишем blockedCore[i] = k.

411C - Кикер

Для того, чтобы решить эту задачу нужно было воспользоваться логикой (математической логикой) :]. Логика подсказывает, что:

  1. Если для какого-то расположения первой команды, не существует расположения второй команды, при котором она может гарантировать себе хотя бы ничью, тогда гарантированно выигрывает первая команда.
  2. Если для любого расположения первой команды, существует расположение второй команды, при котором она может гарантировать себе победу, тогда гарантированно побеждает вторая команда.
  3. Иначе, никто не может победить гарантированно, нужно вывести Draw.

Сделав описанные рассуждения, нужно реализовать их в коде. Делается это перебором всех возможных вариантов расположения игроков.

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

»
10 лет назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится

Tutorual?