正题

题目链接:https://www.luogu.com.cn/problem/P6102?contestId=26472


题目大意

nnn个数的序列aaa,求
∑i=1n∑j=1n∑k=1n∑l=1n(aioraj)xor(akandal)\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^n\sum_{l=1}^n(a_i\ or\ a_j)\ xor\ (a_k\ and\ a_l)i=1∑n​j=1∑n​k=1∑n​l=1∑n​(ai​ or aj​) xor (ak​ and al​)


题目大意

每一位分开来求
考虑分开来求,若ororor为1,andandand为0,那么就是求至少有一个1的对数∗至少有一个是0的对数至少有一个1的对数*至少有一个是0的对数至少有一个1的对数∗至少有一个是0的对数
若ororor为0,andandand为1,那么就是求两个都是0的对数∗两个都是1的对数两个都是0的对数*两个都是1的对数两个都是0的对数∗两个都是1的对数
显然这些都很容易求,这里不再多讲


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll XJQ=4294967296;
ll n,a[500100],ans;
int main()
{scanf("%lld",&n);for(ll i=1;i<=n;i++)scanf("%lld",&a[i]);for(ll i=0;i<32;i++){ll one=0,o=0,A=0;for(ll j=1;j<=n;j++){if(a[j]&(1ll<<i)){o=(o+j*2-2)%XJQ;A=(A+one*2)%XJQ;one++;o++;A++;}else o=(o+one*2)%XJQ;}o%=XJQ;A%=XJQ;ans=(ans+o*((n*n%XJQ-A+XJQ)%XJQ)%XJQ*(1ll<<i)%XJQ)%XJQ;ans=(ans+A*((n*n%XJQ-o+XJQ)%XJQ)%XJQ*(1ll<<i)%XJQ)%XJQ;}printf("%lld",ans);
}

P6102-[EER2]谔运算【位运算】相关推荐

  1. 常用技巧 —— 位运算 —— 位运算基础

    [与运算] 与运算常用于二进制的取位操作,其用符号 & 表示,相同位的两个数字都为1,则为1,若有一个不为1,则为0. 例如:00101 & 11100 = 00100 其会将两个十进 ...

  2. Home_W的位运算(位运算+预处理)

    Home_W的位运算1 题目链接: 传送门解题思路:这题有两种解题思路,一种就是\(n^2\times m\)的时间复杂度,还有一种就是经过预处理的时间复杂度为\(n^2\)的方法,先说第一种,大家直 ...

  3. linux寄存器位运算,位运算的一些操作

    最近在做一些嵌入式软件相关的工作,经常涉及到对于FPGA寄存器的相关操作.而对于寄存器的操作,软件这边通常是把数据进行组装为一个固定位宽(8bit, 16bit)的数通过localbus总线写到寄存器 ...

  4. 位运算 - 位运算基本操作

    package com.bitOperation;/*** java的整数是有符号的,二进制表示的时候,第一位是符号位* 其范围是 -2^31 ~ 2^31-1** Java的设计,负数在内存中存储的 ...

  5. 位运算 位运算应用

    本页目录 位运算分为2个大类 位于 &(一0则0) 位或| (双0则0) 异或 ^(互异则1) 利用异或可实现一个小面试题,如何不添加变量,实现数据的替换 按位取反 ~ 左移 << ...

  6. 汇编指令 栈现场保护 算数运算 位运算 比较指令 跳转指令 循环指令 寻址方式

    文章目录 1 nop 指令 2 现场保护指令 2.1 push 与 pop 2.2 pushad 与 popad 2.3 pushfd 与 popfd 3 内存操作 3.1 mov指令 3.2 mov ...

  7. 常用技巧 —— 位运算 —— 位运算的应用

    1.lowbit:计算一个数字 x 二进制下最低位 1 对应的值 方法: int lowbit(int x){return x&(-x); } lowbit 利用了补码的特性:正数的补码是其自 ...

  8. java 减法 位运算,位运算-实现加减乘除

    基本性质:1:~n=-(n+1),比如:~3=-4 2:获取整数n的二进制串中最后一个1:-n&n=~(n-1)&n 3:去掉整数n的二进制串中最后一个1:n&(n-1) 加法 ...

  9. java基础——java位运算

    位运算 位运算[位运算仅针对整型,进行位运算时,除了long型外,其他类型自动转换成int型,如果移动的位数超过32位(long是64位),编译器会对移动的位数取模] 左移(<<):丢弃最 ...

  10. python与或非位运算_python位运算

    什么是位运算 位运算就是把数字当成二进制来进行计算,位运算有六种:&(与), |(或), ^(异或), ~(非), <>(右移) &(与) &运算规则:两个位都为1 ...

最新文章

  1. Python的pyroute2网络模块
  2. cd 在windows下 无法切换盘符目录
  3. mysql服务在tcp6_为什么 netstat 对某些服务只显示了 tcp6 监听端口
  4. php动态加载js,动态加载script文件的两种方法_javascript技巧
  5. go语言笔记——go是有虚拟机runtime的,不然谁来做GC呢,总不会让用户自己来new和delete进行内存管理吧,还有反射!Go 的 runtime 嵌入到了每一个可执行文件当中...
  6. 利用 Python 实现多任务进程
  7. jvm 崩溃日志设置_记一次JVM疯狂GC导致CPU飙高的问题解决
  8. Android自定义View——可以设置最大宽高的FrameLayout
  9. 【转】 ID,ClientID和UniqueID
  10. Tomcat 的 DefaultServlet
  11. Spring中的异步和事务性事件侦听器
  12. JEECG V3.0 版本(jbpm5 工作流自定义+WEB UI快速开发库+代码生成器) spring mvc +hibernate
  13. 商家 APP 如何接入新版支付宝支付,老版本商家如何升级
  14. LeetCode刷题(22)
  15. NODDI在临床研究中的应用
  16. 哪吒票房超复联4,100行python代码抓取豆瓣短评,看看网友怎么说
  17. java 磁力下载工具_它可能是现在最好用的磁力下载工具
  18. 阿里云对象存储OSS收费标准(很详细一看就懂)
  19. 桃李春风一杯酒,江湖夜雨十年灯。—第三十五天
  20. text to image(八):《Image Generation from Scene Graphs》

热门文章

  1. java富文本如何转义_富文本编辑器wangEditor中转义字符的问题
  2. python创建一个空的dataframe_python 创建一个空dataframe 然后添加行数据的实例
  3. .net mysql字符串截取_【MySQL】字符串截取之SUBSTRING_INDEX和【MySQL】字符串四则运算...
  4. leetcode145. 二叉树的后序遍历
  5. [JavaWeb-Servlet]Servlet的体系结构
  6. [设计模式]装饰模式
  7. [C++STL]map容器用法介绍
  8. Apple Catching POJ - 2385(基础的动态规划算法)
  9. oracle sql execute elapsed time,SQL ordered by Elapsed Time 脚本
  10. 数据结构与算法--简单栈实现及其应用