bzoj 4017 小Q的无敌异或(所有子区间异或的和 与和的异或)
来源:互联网 发布:张艺兴直播的软件 编辑:程序博客网 时间:2024/03/29 01:20
题目链接
小Q的无敌异或
长度为
分析
感谢skywalkert 提供题解
按位计算就好
AC code
#include <bits/stdc++.h>using namespace std;#define ms(x,v) (memset((x),(v),sizeof(x)))typedef long long LL;const int maxn = 1e5+10;const int MOD = 998244353;int x[maxn],n;LL sum[maxn];int bit[maxn];LL p[maxn];void add(int idx){ while (idx <maxn){ bit[idx]^=1; idx += idx &-idx; }}int SUM(int idx){ int ret =0; while(idx >0){ ret ^= bit[idx]; idx -= idx & -idx; } return ret;}inline int IDX(LL val){ int id = upper_bound(p,p+n+1,val)-p; if(p[id]==val)id--; return id+1;}int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; for(int i=1 ; i<=n ; ++i){ int tmp;cin>>tmp; x[i] = x[i-1]^tmp; sum[i] = sum[i-1] + tmp; } LL ans1 =0,ans2=0; for(int k=0 ;k < 25 ; ++k){ int cnt[2] ={0,0},s=0; for(int i=0 ; i<=n ; ++i){ s += cnt[((x[i]>>k)&1) ^ 1]; cnt[(x[i]>>k)&1]++; } ans1 = (ans1 + (1LL<<k)*s % MOD) % MOD; } for(int k=0 ; 1LL << k <= sum[n] ; ++k){ int flag = 0;// id.clear();// tot=0; for(int i=0 ; i<=n ; ++i){ LL now = sum[i] &( (1LL <<(k+1))-1); p[i]=now; }// tot=0;// for(map<LL,int>:: iterator it = id.begin() ; it!=id.end() ; ++it)// it->second= ++tot; sort(p,p+n+1); ms(bit,0); for(int i=0 ; i<=n ; ++i){ LL now = sum[i] &( (1LL <<(k+1))-1); add(IDX(now)); flag ^= SUM(IDX(now-(1LL<<k))) ^ SUM(IDX(now + (1LL<<k))) ^ SUM(IDX(now)); } if(flag) ans2 |= (1LL <<k); } cout << ans1 << " "<< ans2<<"\n"; return 0;}
阅读全文
0 0
- bzoj 4017 小Q的无敌异或(所有子区间异或的和 与和的异或)
- BZOJ 4017 小Q的无敌异或
- bzoj 4017 小Q的无敌异或
- xian 区域赛 g bzoj 4017: 小Q的无敌异或
- bzoj4017 小Q的无敌异或 数学
- 【bzoj4017】小Q的无敌异或 树状数组
- 2017.10.12 小Q的无敌异或 失败总结
- BZOJ4017 小Q的无敌异或 好题
- 小Q的无敌异或(第一问)
- 各子区间和的异或和
- 序列子区间异或和
- BZOJ 4017&&2017 icpc 西安G 区间异或和
- 异或、异或和 的性质与应用
- CF 665E 限制异或和的区间计数
- wannafly4 挑战杯 B.小AA的数列(区间异或和)
- hdu3949 XOR(求所有的异或和的第k小,高斯消元求线性基)
- 与、或、异或的操作
- 神奇的与(&)、非(~)、或(|)、异或(^)
- Docker-创建一个mysql容器,并保存为本地镜像
- java拦截器、过滤器、监听器
- Caffe2移动端GPU支持列表
- 深入理解java注解(Annotation)以及 自定义注解入门
- [作业]数据类型的值和对象值的区别
- bzoj 4017 小Q的无敌异或(所有子区间异或的和 与和的异或)
- TP5 使用php7出现no input file specified问题
- Maven的版本号定义约定
- console.log 调试强大应用
- 6-4 两个有序链表序列的合并
- 排查线上tomcat出现cpu100%问题
- TensorFlow -2-Ops-2
- 以PDF转DjVu为例分析软件和人工转换的区别
- ECMAScript 6 入门学习(2.变量的解构赋值)