当前位置: 首页 > news >正文

【异或和之和 / H】

题目

思路

  • 异或前缀和优化到 O(n^{2})
    • 计算本身是O(1),这很好
    • 单用前缀和的缺点是我们按照枚举 (l, r) 对计算贡献,分的种类也就是计算的次数达到了 n^{2}
    • 优化方式是,我们按照枚举各个数位 logn 来计算贡献,这样时间就会达到 O(nlogn)
  • 拆位法+贡献法
    • 有贡献的是 (0,1) 异或
    • 第 i 位(从0开始)上的 (0,1) 有序对数目乘以权重 2^{i} 就是对答案的贡献

代码 

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;const int N = 1e5+10;
int s[N];
ll ans;
int main()
{int n;cin >> n;for(int i = 1; i <= n; i++)cin >> s[i], s[i] = s[i] ^ s[i-1];for(int i = 0; i < 21; i++){ll now = 0;int c0 = 0, c1 = 0;for(int j = 0; j <= n; j++){if((s[j] >> i) & 1) now += c0, c1++;else now += c1, c0++;}ans += now * (1 << i);}cout << ans;
}


http://www.mrgr.cn/news/44125.html

相关文章:

  • d3底层绘制拓扑图
  • No.5 笔记 | 网络端口协议概览:互联网通信的关键节点
  • CSS基础-盒子模型(三)
  • Chromium 中JavaScript File API接口c++代码实现
  • 怎么将mp4转换为mp3?教你6种值得收藏的视频转音频方法!
  • 走进异常类的世界,自定义业务异常类实现指南
  • 【机器学习】深度学习、强化学习和深度强化学习?
  • 个人网站,怎么操作才能提升个人网站的流量
  • PostgreSQL分区表,实战细节满满
  • 科普篇 --- 什么是汽车中的API?
  • DataX+Crontab实现多任务顺序定时同步
  • Hive数仓操作(七)
  • 鸿蒙开发(NEXT/API 12)【穿戴设备传感器获取】手机侧应用开发
  • Linux命令:用于管理 Linux 系统中用户组的命令行工具gpasswd详解
  • 【数据结构】【链表代码】随机链表的复制
  • C# 雷赛运动控制器 SMC304 新建工程
  • S7-200 SMART Modbus RTU常见问题
  • detectron2/data/catalog.py源码笔记
  • MATLAB图像去雾系统
  • Codeforces Rund 977 div2 个人题解(A~E1)