// [мы тут] 7. Динамика :
// отрезки: задача про макс-подпоследовательность-подпалиндром
// бит-маски --> int32 (и базовые операции над множествами-масками)
// подмножества : гамильтонов путь (начать с рекурсии с запоминанием!) и коммивояжер
#include <vector>
#include <iostream>
using namespace std;
int main() {
// A = {0, 1, .... , 31}
// uint32_t A = 0, B = 0;
uint64_t A = 0, B = 0;
int x = 3;
A += 1 << x; // 2^x
A = (1 << 1) + (1 << 3) + (1 << 4); // {1, 3, 4};
A | B; // OR, объединение
A & B; // AND, пересечение
// 00101010101 << 3 (2^3)
//00101010101000
// uint64_t
// 0..K-1
const int K = 1000, LEN = K / 64 + 1;
uint64_t C[LEN];
uint64_t D[LEN];
for (int i = 0; i < LEN; i++)
C[i] |= D[i]; // OR=
}
|