博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 3105 线性基 高斯消元
阅读量:5078 次
发布时间:2019-06-12

本文共 816 字,大约阅读时间需要 2 分钟。

思路:

按照从大到小排个序
维护两个数组 一个是消元后的 另一个是 按照消元的位置排的
不断 维护从大到小
(呃具体见代码)

//By SiriusRen#include 
#include
#include
using namespace std;#define int long long#define N 105int n,a[N],b[N],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
()),sort(b+1,b+1+n,greater
()); 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);}

这里写图片描述

转载于:https://www.cnblogs.com/SiriusRen/p/6532053.html

你可能感兴趣的文章
iframe父子页面通信
查看>>
ambari 大数据安装利器
查看>>
java 上传图片压缩图片
查看>>
magento 自定义订单前缀或订单起始编号
查看>>
ACM_拼接数字
查看>>
计算机基础作业1
查看>>
Ubuntu 深度炼丹环境配置
查看>>
C#中集合ArrayList与Hashtable的使用
查看>>
从一个标准 url 里取出文件的扩展名
查看>>
map基本用法
查看>>
poj-1163 动态规划
查看>>
Golang之interface(多态,类型断言)
查看>>
Redis快速入门
查看>>
BootStrap---2.表格和按钮
查看>>
Linear Algebra lecture 2 note
查看>>
CRC计算模型
查看>>
Ajax之404,200等查询
查看>>
Aizu - 1378 Secret of Chocolate Poles (DP)
查看>>
csv HTTP简单表服务器
查看>>
OO设计的接口分隔原则
查看>>