Atcoder Beginner Contest 147D(按位处理)
2024-09-06 00:18:44
把每个数字每一位上二进制数字取出,求答案时直接用N个数里这一位是0的个数乘上这一位是1的个数然后乘上二的这一位次方,注意所有可能溢出的地方都要对mod取模。
#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
long long a[];
int num[][];
long long sum0[],sum1[],presolve[];
const long long mod = 1e9+;
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
cin>>n;
for(int i=;i<=n;++i)
cin>>a[i];
for(int i=;i<=n;++i){
long long temp=a[i];
int cnt=;
while(temp){
if(temp&)
num[i][cnt]=;
++cnt;
temp/=;
}
}
long long ans=;
for(int i=;i<=n;++i){
for(int k=;k<=;++k){
if(num[i][k]==)
++sum0[k];
else
++sum1[k];
}
}
long long x=;
presolve[]=;
for(int i=;i<=;++i){
x*=;
presolve[i]=x;
}
for(int i=;i<=;++i){
ans+=(((sum0[i]*sum1[i])%mod)*(presolve[i]%mod))%mod;
ans%=mod;
}
cout<<ans;
return ;
}
最新文章
- jQuery_Ajax_Json 异步接收PHP端传来的json数据
- Oracle GoldenGate 12c (12.1.2.0.1) for IBM DB2 iSeries
- 如何利用PhoneGap制作地图APP
- uva 10791
- java - String 浅谈
- C# 2 运算符 if
- 私有云Mariadb集群搭建
- hadoop系列二:HDFS文件系统的命令及JAVA客户端API
- async/await的多线程问题
- java多线程系列(六)---线程池原理及其使用
- 从交叉熵损失到Facal Loss
- PowerShell 并行执行任务
- PowerShell 发布farm solution
- Appium 如何模拟按键
- 双网卡双线路DNS解析分析
- JAVA Socket 编程---Socket 和 ServerSocket
- java关于集合的遍历与增强for循环(foreach)的使用
- Android,我待你入初恋啊,你就别坑我了!
- 作为一枚第二天上班的小小.net程序员(技术宅的那种)很迷茫哦,第一个随笔
- 使用Eclipse构建Maven项目