https://codeforces.com/contest/1101/problem/G

题意

一个有n个数字的数组a[],将区间分成尽可能多段,使得段之间的相互组合异或和不等于零

题解

  • 根据线性基的定义(线性无关),任意线性基组成的集合的异或和都不会等于0,因为假如等于零,说明一定存在一个基能被其他基异或表示
  • 依次将数组a插入线性基中,最后非0线性基的数量就是答案

代码

#include<bits/stdc++.h>
#define ll long long
#define M 200005
using namespace std;
ll a[M],sum=0,n,BS[50];
ll sol(){
for(int i=1;i<=n;i++){
for(int j=30;j>=0;j--){
if(a[i]>>j&1){
if(!BS[j]){BS[j]=a[i];break;}
a[i]^=BS[j];
}
}
}
ll ans=0;
for(int i=0;i<=30;i++)ans+=(BS[i]>0);
return ans;
} int main(){
cin>>n;
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
sum^=a[i];
}
if(sum==0)cout<<-1;
else cout<<sol();
}

Educational Codeforces Round 58 (Rated for Div. 2) G 线性基的更多相关文章

  1. Educational Codeforces Round 58 (Rated for Div. 2) 题解

    Educational Codeforces Round 58 (Rated for Div. 2)  题目总链接:https://codeforces.com/contest/1101 A. Min ...

  2. Educational Codeforces Round 39 (Rated for Div. 2) G

    Educational Codeforces Round 39 (Rated for Div. 2) G 题意: 给一个序列\(a_i(1 <= a_i <= 10^{9}),2 < ...

  3. Educational Codeforces Round 58 (Rated for Div. 2) F dp + 优化(新坑) + 离线处理

    https://codeforces.com/contest/1101/problem/F 题意 有n个城市,m辆卡车,每辆卡车有起点\(s_i\),终点\(f_i\),每公里油耗\(c_i\),可加 ...

  4. Educational Codeforces Round 58 (Rated for Div. 2) D 树形dp + 数学

    https://codeforces.com/contest/1101/problem/D 题意 一颗n个点的树,找出一条gcd>1的最长链,输出长度 题解 容易想到从自底向长转移 因为只需要g ...

  5. Educational Codeforces Round 58 (Rated for Div. 2)

    A. Minimum Integer 水 #include<bits/stdc++.h> #define clr(a,b) memset(a,b,sizeof(a)) using name ...

  6. Educational Codeforces Round 58 (Rated for Div. 2) (前两题题解)

    感慨 这次比较昏迷最近算法有点飘,都在玩pygame...做出第一题让人hack了,第二题还昏迷想错了 A Minimum Integer(数学) 水题,上来就能做出来但是让人hack成了tle,所以 ...

  7. Educational Codeforces Round 53 (Rated for Div. 2)G. Yet Another LCP Problem

    题意:给串s,每次询问k个数a,l个数b,问a和b作为后缀的lcp的综合 题解:和bzoj3879类似,反向sam日神仙...lcp就是fail树上的lca.把点抠出来建虚树,然后在上面dp即可.(感 ...

  8. Educational Codeforces Round 51 (Rated for Div. 2) G. Distinctification(线段树合并 + 并查集)

    题意 给出一个长度为 \(n\) 序列 , 每个位置有 \(a_i , b_i\) 两个参数 , \(b_i\) 互不相同 ,你可以进行任意次如下的两种操作 : 若存在 \(j \not = i\) ...

  9. Educational Codeforces Round 48 (Rated for Div. 2)G. Appropriate Team

    题意:求满足条件的(i,j)对数:\(gcd(v,a_i)=x,lcm(v,a_j)=y\) 题解:\(x|a_i,a_j|y\),\(x|y\),考虑质因子p,假设a_i中p次数为a,x中次数为b, ...

随机推荐

  1. js中this的绑定规则及优先级

    一.   this绑定规则 函数调用位置决定了this的绑定对象,必须找到正确的调用位置判断需要应用下面四条规则中的哪一条. 1.1 默认绑定 看下面代码: function foo() { cons ...

  2. 左手是“Python”的身体,右手是“R”的灵魂,你爱哪个?

    来源商业新知网,原标题:你爱 “Python”的身体,还是“R”的灵魂? 数据科学界有三大宝: Python.SAS和R,不过像SAS这种高端物种,不是我们这些平民能供养得起的啊. 根据 IEEE S ...

  3. 初识docker

    什么是docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主 ...

  4. k8s之调度约束

    k8s调度约束有两种:第一种,直接指定某台node主机:这种形势将直接跳过调度器.如下: 第二种:先给各node指定标签,然后在通过标签的形势来关联node,这种形势人就会调用到调度器.如下: yao ...

  5. 定时器&改变定时器的执行频率

    static System.Threading.Timer timer; static void Main(string[] args) { Console.WriteLine("Press ...

  6. IDEA添加项目依赖(将Tomcat中的servlet-api.jar添加到项目中去)

    File -> project structure -> Modules -> 右侧Dependencies -> 然后点加号把配置好的Tomcat的依赖包加进去

  7. HAProxy 的acl应用

    非常好的博文推荐:http://blog.51cto.com/1992tao/1875563 官方文档:https://cbonte.github.io/haproxy-dconv/1.9/confi ...

  8. time 命令

    语法 time [options] COMMAND [arguments] 参数 -o 或 --output=FILE:设定结果输出档.这个选项会将 time 的输出写入 所指定的档案中.如果档案已经 ...

  9. 从零开始学spring cloud(四) -------- 基础项目搭建

    1.创建一个spring cloud项目 1.1.使用工具创建--idea 点击creat new project,选择spring initializr 点击next,选择下一步 填入自己的Grou ...

  10. python 下 判断操作系统

    import platform OS = platform.system() # Windows, Linux, Darwin def get_sys(): if OS == 'Darwin': pr ...