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

Автор ilqw, история, 15 месяцев назад, По-русски

Замечание описанное ниже полезно когда вам нужно например установить соответствие между какими-либо массивами. Такой подход применим в meet-in-the-middle, например(если знаете еще применения напишите в комментариях к данному посту, и я его обновлю).

Итак, само замечание

Если у вас есть две последовательности и суммы их элементов равны(см. пример), то их разностные массивы противоположны по знаку

Пример: массивы {3, 2, 1} и {1, 2, 3} их разностные массивы равны соответственно {1, 1} и {-1, -1} (противоположны по знаку), так как 3 + 1 = 2 + 2 = 1 + 3

Задача, в которой применимо данное замечание: 1257F - Сделай их похожими

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

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

Автор ilqw, история, 16 месяцев назад, По-русски

Если возникла потребность в вводе чего-либо в одну строку можно использовать две встроенные функции: getline и sstream А именно: пусть нам вводят массив чисел неизвестной длины, и мы хотим его считать. Для этого запишем сначала все в строку методом getline:

string s;
getline(cin, s);

далее преобразуем строку в поток ввода с помощью stringstream: stringstream ss(s) ну а далее с помощью while выполним необходимые операции(в моем случае вывод), для этого создадим переменную val, в которую будем вводить числа из потока ss:

stringstream ss(s);
int val = 0;
while(ss >> val){
    cout << val << " ";
}

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

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