高斯消元总结

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,先求解出线性基,然后贪心判断就可以了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值