Сегодня занимался реализацией алгоритма поиска максимального множества не связанных вершин. На входе имею граф 1280 вершин.
Представил в виде массива unsigned int [1280][40] 1280 списков смежности по 40х32бита =1280бит
У меня есть своя библиотека хорошо оптимизированных с точки зрения быстродействия функций по работе с битовыми строчками (запись,удаление бита на нужной позиции , проверка бита по позиции, поиск первой 1, сложение умножение отрицание, сложение по модулю)
Работаю с битовыми строками и динамическими списками. Первое впечатление: операции исключения действительно получаются со строками гораздо эффективнее, чем работа со стандартными list списками смежности.
Множество NOT я так понял используется для шагов назад, по рассматриваемой ветке графа.
и для исключения части решений не из рассмотрения. (до конца пока не понял)