BZOJ 3105 线性基 高斯消元
2017-01-30 18:07
274 查看
思路:
按照从大到小排个序
维护两个数组 一个是消元后的 另一个是 按照消元的位置排的
不断 维护从大到小
(呃具体见代码)
//By SiriusRen #include <cstdio> #include <iostream> #include <algorithm> using namespace std; #define int long long #define N 105 int n,a ,b ,flag=1,ans; signed main(){ scanf("%lld",&n); for(int i=1;i<=n;i++)scanf("%lld",&a[i]),ans+=a[i],b[i]=a[i]; sort(a+1,a+1+n,greater<int>()),sort(b+1,b+1+n,greater<int>()); for(int i=1<<30,j;i;i>>=1){ for(j=flag;j<=n;j++)if(a[j]&i)break; if(j==n+1)continue; for(int k=j-1;k>=flag;k--)swap(a[k+1],a[k]),swap(b[k+1],b[k]); for(int k=1;k<=n;k++)if(k!=flag&&(a[k]&i))a[k]^=a[flag]; ans-=b[flag]; flag++; } printf("%lld\n",ans?ans:-1); }
相关文章推荐
- bzoj 3105: [cqoi2013]新Nim游戏 (高斯消元求解线性基)
- BZOJ 3105: [cqoi2013]新Nim游戏 [高斯消元XOR 线性基]
- 【bzoj3105】[cqoi2013]新Nim游戏 高斯消元求线性基
- [BZOJ3105][cqoi2013]新Nim游戏(贪心+高斯消元求线性基)
- BZOJ 3105 线性基 高斯消元
- [高斯消元 线性基 贪心 拟阵] BZOJ 3105 [cqoi2013]新Nim游戏
- BZOJ 2844 高斯消元 线性基
- [高斯消元 线性基 生成树 随机化权值Xor] BZOJ 3569 DZY Loves Chinese II
- [高斯消元 线性基 贪心 拟阵 逆元] BZOJ 4004 [JLOI2015]装备购买
- BZOJ 2115 Xor 线性基介绍(高斯消元 xor线性基)
- [BZOJ4004][JLOI2015]装备购买(贪心+高斯消元求线性基)
- 【bzoj4184】shallot 线段树+高斯消元动态维护线性基
- BZOJ 2844 高斯消元 线性基
- [高斯消元 线性基] BZOJ 2115 [Wc2011] Xor
- BZOJ 2844 albus就是要第一个出场 ——高斯消元 线性基
- 【BZOJ3105】【拟阵】【高斯消元】【贪心】[cqoi2013]新Nim游戏 题解
- 【bzoj2460】[BeiJing2011]元素 贪心+高斯消元求线性基
- [高斯消元 线性基] BZOJ 4269 再见Xor
- [高斯消元 线性基 树 记数] BZOJ 2322 [BeiJing2011]梦想封印
- [BZOJ4269]再见Xor(高斯消元求线性基+贪心)