Codeforces Round #672 (Div. 2 B. Rock and Lever (位运算)
2024-08-31 23:01:21
题意:给你一组数,求有多少对\((i,j)\),使得\(a_{i}\)&\(a_{j}\ge a_{i}\ xor\ a_{j}\).
题解:对于任意两个数的二进制来说,他们的最高位要么相同要么不相同,如果相同,那么肯定是满足题目条件的,因为异或是不进位的加法,所以我们只要找到所有最高位相同的数的个数,用桶存下来,然后再对他们求个和就行了.
代码:
int t;
int n;
ll x;
map<ll,ll> mp; int main() {
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
cin>>t;
while(t--){
cin>>n;
mp.clear();
for(int i=1;i<=n;++i){
cin>>x;
ll cnt=0;
while(x){
cnt++;
x>>=1;
}
mp[cnt]++;
}
ll res=0;
for(auto w:mp){
res+=w.se-1+(w.se-1)*(w.se-2)/2;
}
cout<<res<<endl;
} return 0;
}
最新文章
- WebSocket - ( 一.概述 )
- orcad candence 快捷键小结
- Thinking in Java——笔记(10)
- Qt4过渡至Qt5
- Ruby界面开发--wxRuby库TextCtrl相关问题
- BFS visit tree
- HTTP Status 404 - No result defined for action com.hebky.oa.classEntity.action.EntitysAction and result input
- Vnix项目正式启动
- OC继承以及实例变量修饰符
- 【后缀自动机】洛谷P3804模板题
- oracle创建函数和调用存储过程和调用函数的例子(区别)
- 警惕32位程序在MethodImplOptions.Synchronized在x64机器上的同步缺陷[z]
- python--类中的对象方法、类方法、静态方法的区别
- oracle数据库名称已被一现有约束条件占用
- VS2017中 C# dll引用(C生成dll,C++生成dll)小结 - 简书
- Java中测试StringBuilder、StringBuffer、String在字符串拼接上的性能
- python实现排序算法二:归并排序
- 详解一下 javascript 中的比较
- Font Awesome矢量版,十六进制版,WPF字体使用
- coreos 创建使用密钥登陆的ubuntu 基础镜像
热门文章
- 十五:SQL注入之oracle,Mangodb注入
- Git软件安装过程
- SDUST数据结构 - chap8 查找
- DSL是什么?Elasticsearch的Query DSL又是什么?
- requests模块的基本使用
- Matlab GUI学习总结
- 参数模型检验过滤器 .NetCore版
- history附上时间戳,history命令_Linux history命令:查看和执行历史命令
- Bitter.Core系列 十二 :Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore 之 支持的 where 条件表达式
- 【转载】Linux中找不到ifconfig命令的解决方法