【51nod】1312 最大异或和】的更多相关文章

题解 很显然我们求出一组线性基来,如果有M个基,那么可以构造N - M + 1个最大异或值 而对于线性基中的元素,除了最大的元素,我们用最大异或值异或掉每个元素累加进答案 而不是把线性基中的元素处理成一个下三角矩阵! 代码 #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #include <vector> #include <set&…
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1301 好题!看了TJ才会. 因为是不可重集合,所以当然有前 i 个表示A和B都考虑的前 i 个,新加一个讨论放A.放B.不放. A<B在异或上看就是有一位,它前面的A和B都一样,该位A是0.B是1.该位可以枚举.然后就能dp了. 注意边界细节……和标程对拍真愉快…… #include<iostream> #include<cstdio> #in…
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1301 参考博客:https://blog.csdn.net/qq_33229466/article/details/78418414 原来是DP. 代码如下: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using name…
因为当\(A<B\)时,会存在在二进制下的一位,满足这一位B的这一位是\(1\),\(A\)的这一位是\(0\). 我们枚举最大的这一位.设为\(x\)吧. 设计状态.\(dp[i][j][1/0]\)代表考虑了前i个数,异或和为j的情况下\(B\)的第\(x\)位为\(1\)或\(0\)有多少种情况. 然后随便转移一下,再随便统计答案一下就好了. 如果不知道如何转移,就看代码吧. #include<iostream> #include<cstring> #include&l…
考虑不限制xor{Y}>xor{X} 考虑n=m的情况,每个数i∈[1,n]可以被分配到X集合或Y集合,或不分配 设f[S]表示{X} xor {Y} == S的方案数 有f[S]+=2*f[S^i] 考虑n!=m,那就是多余的部分得强制分配,分开两个转移即可 考虑限制xor{Y}>xor{X} 对于数B>A,在二进制表示下,就是B和A的前面相等,直到某一位B为1,A为0,之后无所谓 枚举这一位k,限制B(xor{Y})第k位为1,且B xor A第k位为0(统计答案限制范围) 状态加一…
传送门 Solution 一道比较好的dp题 想了半天组合数QAQ 首先要知道的是 A<B一定是B有一位是1且A的这位是0且前面都相等 那么肯定是要枚举这一位在哪里然后求出方案数 方案数考虑类似背包的方法分三种情况转移具体见代码 Code #include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #include <algorithm> #defi…
1312 最大异或和 题目来源: TopCoder 基准时间限制:1 秒 空间限制:131072 KB 分值: 320 难度:7级算法题   有一个正整数数组S,S中有N个元素,这些元素分别是S[0],S[1],S[2]...,S[N-1].现在你可以通过一个操作来更新数组.操作方法如下: 选择两个不同的数i.j(0<=i,j<N 且 i!=j),先计算A = S[i] xor S[j], B = S[j].然后用A.B替换S[i],S[j],即 S[i]=A , S[j]=B.其中xor表示…
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1295 1295 XOR key  题目来源: HackerRank 基准时间限制:1.5 秒 空间限制:262144 KB 分值: 160 难度:6级算法题  收藏  关注 给出一个长度为N的正整数数组A,再给出Q个查询,每个查询包括3个数,L, R, X (L <= R).求A[L] 至 A[R] 这R - L + 1个数中,与X 进行异或运算(Xor),得…
思路真的是挺巧妙的. 让我惊叹,原来线性基还能这么做?!?! 好吧,这种取若干个数异或凑数的题目怎么能少的了线性基呢? 但是,问题集中在于怎么快速提取一个区间的线性基 暴力n^2 线段树维护线性基?分区间logn,合并一次logn^2 O(nlogn^3)GG 然后就一脸不可做了. 题解:“容易”想到,一个线性基里面的元素可以用线性基外的元素替换的. 只要保证还能表示出原来的线性空间,那么一定可以替换. 所以,我们给每个点维护一个线性基. lb[r]表示,由1~r的所有元素选择构成的线性基,其中…
1295 XOR key 2 秒 262,144 KB 160 分 6 级题   给出一个长度为N的正整数数组A,再给出Q个查询,每个查询包括3个数,L, R, X (L <= R).求A[L] 至 A[R] 这R - L + 1个数中,与X 进行异或运算(Xor),得到的最大值是多少? 收起   输入 第1行:2个数N, Q中间用空格分隔,分别表示数组的长度及查询的数量(1 <= N <= 50000, 1 <= Q <= 50000). 第2 - N+1行:每行1个数,对…