【BZOJ3105】【cqoi2013】新Nim游戏 线性基神马的
2015-01-09 20:49
369 查看
题解:
……大部分都是这篇博客,多说无益。
http://blog.csdn.net/wyfcyx_forever/article/details/39477673
只能写写对这道题线性基运用的感受。
还有就是那个“线性无关组”说的就是一个集合,然后它没有任何一个子集的异或和为0。。
就是我们消一个数的时候,
就已经有很多线性基了(ins保存的就是这个),
大概是每个线性基都代表之前的数集中存在某数,此位有1,,然后线性基ins保存了(随便一个?)线性基。
而这个线性基保存的形式是把之前那些高位的1都消掉了,消的形式也是用以前的线性基来异或、
这样新的数如果可以成为线性基,那么显然之前的数这位都是0,是可以被计入最大“线性无关组”的。
如果不能成为线性基,那么跟之前的某些数异或和如果非零,也可以计入答案。???
至于这个。。。但是它从高到低消,有1就消,消不了就会成为线性基,怎么可能被计入答案。。
也就是说一个数 如果之前没有数在某个二进制位有1,而它在此位有1,那么就会成为线性基;
否则它就会从头到尾消个痛快,最后成0,而这个过程中与它异或消1的数都是之前的某数或某些数的异或和。
而我们做这个步骤时需要先从大到小排序来保证最优,这点可以用拟阵来证明(本蒟蒻还不会,可以参照wyfcyx's blog,前文已给出)。。。。
代码:
……大部分都是这篇博客,多说无益。
http://blog.csdn.net/wyfcyx_forever/article/details/39477673
只能写写对这道题线性基运用的感受。
还有就是那个“线性无关组”说的就是一个集合,然后它没有任何一个子集的异或和为0。。
就是我们消一个数的时候,
就已经有很多线性基了(ins保存的就是这个),
大概是每个线性基都代表之前的数集中存在某数,此位有1,,然后线性基ins保存了(随便一个?)线性基。
而这个线性基保存的形式是把之前那些高位的1都消掉了,消的形式也是用以前的线性基来异或、
这样新的数如果可以成为线性基,那么显然之前的数这位都是0,是可以被计入最大“线性无关组”的。
如果不能成为线性基,那么跟之前的某些数异或和如果非零,也可以计入答案。???
至于这个。。。但是它从高到低消,有1就消,消不了就会成为线性基,怎么可能被计入答案。。
也就是说一个数 如果之前没有数在某个二进制位有1,而它在此位有1,那么就会成为线性基;
否则它就会从头到尾消个痛快,最后成0,而这个过程中与它异或消1的数都是之前的某数或某些数的异或和。
而我们做这个步骤时需要先从大到小排序来保证最优,这点可以用拟阵来证明(本蒟蒻还不会,可以参照wyfcyx's blog,前文已给出)。。。。
代码:
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define N 105 using namespace std; int stone ,record ,n; int ins[50],stk ,top; int main() { int i,j,k; for(scanf("%d",&n),i=1;i<=n;i++)scanf("%d",&stone[i]); sort(stone+1,stone+n+1); long long sum=0; for(i=1;i<=n;i++)sum+=(record[i]=stone[i]); long long ans=0; for(i=n;i;i--) { for(j=29;~j;j--) if((stone[i]>>j)&1) if(!ins[j]) { ins[j]=i; break; } else stone[i]^=stone[ins[j]]; if(stone[i])ans+=record[i]; } printf("%lld\n",sum-ans); return 0; }
相关文章推荐
- bzoj 3105: [cqoi2013]新Nim游戏 (高斯消元求解线性基)
- BZOJ 3105 CQOI 2013 新Nim游戏 && 2460 BeiJing 2011 元素 拟阵+线性基
- BZOJ 3105 [cqoi2013]新Nim游戏 拟阵
- 【BZOJ3105】【拟阵】【高斯消元】【贪心】[cqoi2013]新Nim游戏 题解
- bzoj 3105: [cqoi2013]新Nim游戏【线性基】
- 【bzoj 3105】: [cqoi2013]新Nim游戏
- [高斯消元 线性基 贪心 拟阵] BZOJ 3105 [cqoi2013]新Nim游戏
- bzoj 3105: [cqoi2013]新Nim游戏 异或高消 && 拟阵
- 【bzoj3105】【cqoi2013】【新Nim游戏】【线性基+贪心】
- BZOJ 3105([cqoi2013]新Nim游戏-拟阵)
- 【bzoj3105】【cqoi2013】【新Nim游戏】【线性基+贪心】
- bzoj 3105: [cqoi2013]新Nim游戏 博弈论+贪心(拟阵)+线性基
- 拟阵:贪心原理(bzoj 3105: [cqoi2013]新Nim游戏)
- Bzoj3105:[CQOI2013]新Nim游戏
- 【BZOJ3105】[cqoi2013]新Nim游戏 贪心+线性基
- Bzoj3105:[CQOI2013]新Nim游戏
- 【bzoj3105】[cqoi2013]新Nim游戏 高斯消元求线性基
- BZOJ3105 [CQOI2013]新Nim游戏 Solution
- [BZOJ3105][CQOI2013]新Nim游戏
- BZOJ 3105: [cqoi2013]新Nim游戏 [高斯消元XOR 线性基]