T 家族/FWT 学习笔记

SkyMaths's Blogs / 2024-10-11 / 原文

或卷积

FWT_OR

for (int k = 1; k < N; k <<= 1)
	for (int i = 0; i < N; i += k << 1)
		for (int j = 0; j < k; ++j)
			add(f[i | j | k], f[i | j]);

IFWT_OR

for (int k = 1; k < N; k <<= 1)
	for (int i = 0; i < N; i += k << 1)
		for (int j = 0; j < k; ++j)
			sub(f[i | j | k], f[i | j]);