《算法竞赛进阶指南》0x35高斯消元与线性空间 异或空间
2021-04-24 07:29
标签:href https blank 进制 ase ace else 分解 范围 题目链接:https://www.acwing.com/problem/content/212/ 给定n个数,要求这些数能够异或的数中的第k小,通过求异或线性基就可以得到这些数可以异或得到的不相同的数的维数,通过这些线性基的异或便可以得到这些数的异或的所有可能的数, 异或基中从大到小的数的最高位为1,其他数的这一位一定不是一,所以假设异或基的维数是4,则从大到小的数分别是第1000、0100、0010、0001小的数,所以只要将询问按照二进制进行分解就可以 ,如果k的第i位是1,则取基中第dim-i个数异或到结果中去。 注意到我们的异或基都是非零的,所以如果从给的数里面能够得到0的话,第k大就相当于基构成的数中的第k-1大,如果不能得到0的话,就从我们的基中取第k小的,就可以。 还有一个注意点就是数据的范围,需要用unsigned long long 来进行存储,在scanf中使用的是%llu. 《算法竞赛进阶指南》0x35高斯消元与线性空间 异或空间 标签:href https blank 进制 ase ace else 分解 范围 原文地址:https://www.cnblogs.com/randy-lo/p/13265979.html#include
上一篇:java super关键字
文章标题:《算法竞赛进阶指南》0x35高斯消元与线性空间 异或空间
文章链接:http://soscw.com/essay/78849.html