Изменения

Перейти к: навигация, поиск

Получение следующего объекта

53 байта убрано, 09:45, 20 декабря 2011
Специализация алгоритма для генерации следующего битового вектора
== Специализация алгоритма для генерации следующего битового вектора ==
Двигаемся справа налево по элементам объекта* Находим минимальный суффикс, пока не найдем элемент в котором есть 0. Заменим , его на 1можно увеличить, а все элементы справа на нулине меняя оставшейся части.* Вместо 0 записываем 1 * Дописываем минимально возможный хвост из нулей
<code>
bool next_vec(vector<int> &a) { int n = a.size(); int pos for i = n - to 1; while (pos != -1 && if a[posi] == 1) --pos; if (pos == -1) return false; 0 a[posi] = 1; while (for j = i ++pos < 1 to n) a[posj] = 0; return true; }break
</code>
=== Пример работы ===
Анонимный участник

Навигация