线性基
class Base { static const int max_bit = 32; // 注意 使用的时候要减一 int base[max_bit]; public : void init() { memset(base, 0, sizeof(base)); } void insert(int val) { for (int i=max_bit-1; i>=0; --i) { // 要减一 ,因为位移是0~n-1位的 if ((val >> i) & 1) { if (!base[i]) { base[i] = val; break; } val ^= base[i]; } } } }base;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步