线性基

时间:2021-02-25 11:48:13   收藏:0   阅读:0

线性基,给定一个数列,需要我们求出一个集合,要求对于每一个数列中的元素,都可以在集合中找到一些元素异或起来与其相等,并且要求集合元素最少。

代码出奇的简单好懂……

for(int i = 1;i <= m;i ++) {
		ll t = a[i];
		for(int j = 50;j >= 0;j --) {
			if(!(t>>j&1)) continue;
			if(b[j]) t ^= b[j];
			else {b[j] = t,ans ++;break;}
		}
	}

其中a是给定数列,b是所求线性基。

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!