高斯消元总结

来源:互联网 发布:php aes解密 乱码 编辑:程序博客网 时间:2024/06/06 02:57

1.高斯消元与XOR相结合

  • 从N个数中选出两个数,使XOR和最大。
    思路:对于每个数都插入到字典树中,利用字典树进行查找。O(60*n)

  • N个点的边带权的树,找一条路径使XOR和最大。
    思路:将每个点的值视为从根到这个点的路径上值的异或,转化为问题一。

  • 从N个数中选出若干个,使XOR和为K,给出方案或指出不可行。
    思路:对每一个数进行考虑,然后对每一个数的每一位建立方程,总共有60个方程。
    设N个未知数,M个方程,A为系数矩阵,时间复杂度(N*M^2)

  • 在上述基础上,给定M个限制,每个限制是那N个数的一个子集,要求该子集中的数恰有奇数个或偶数个被选择。
    思路: 给每个限制添加一个方程,利用上述的方法解决

  • 从N个数中选出任意个数,使XOR和最大
    思路一:从高到低确定K的每一位,设当前考虑第i位
    若Ki = 1可行则确定(判断是否可行,对前i位列方程)
    否则Ki = 0,时间复杂度O(N*60^3)
    思路二:利用线性基

  • 从N个数中选出任意个数,求能得到的XOR和的种数。
    思路:线性基有k个,答案为2^k(特判0是否能取到,如果不能,ans-1)

  • 从N个数中选出任意个数,使它们的XOR和与K的XOR和最大。
    思路:假设(1LL<< j) &ai,那么在i之后的线性基数中第j为不可能出现为1,先求解出线性基,然后贪心判断就可以了
0 0
原创粉丝点击