博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ZOJ 3870 Team Formation(二进制找规律)
阅读量:5248 次
发布时间:2019-06-14

本文共 1892 字,大约阅读时间需要 6 分钟。

Description

For an upcoming programming contest, Edward, the headmaster of Marjar University, is forming a two-man team from N students of his university.

Edward knows the skill level of each student. He has found that if two students with skill level A and B form a team, the skill level of the team will be A ⊕ B, where ⊕ means bitwise exclusive or. A team will play well if and only if the skill level of the team is greater than the skill level of each team member (i.e. A ⊕ B > max{

AB}).

Edward wants to form a team that will play well in the contest. Please tell him the possible number of such teams. Two teams are considered different if there is at least one different team member.

Input

There are multiple test cases. The first line of input contains an integer T indicating the number of test cases. For each test case:

The first line contains an integer N (2 <= N <= 100000), which indicates the number of student. The next line contains N positive integers separated by spaces. The ith integer denotes the skill level of ith student. Every integer will not exceed 109.

Output

For each case, print the answer in one line.

Sample Input

231 2 351 2 3 4 5

Sample Output

16
#include 
#define N 100000#define LL long long#define U unsignedusing namespace std;int cas=1,T;int n,a[N+10],bit[32],hb[32],b[32];int main(){ //freopen("1.in","w",stdout); //freopen("1.in","r",stdin); //freopen("1.out","w",stdout); for(int i=0;i<32;i++) bit[i]=1<
=0;i--) { int hib=-1; for(int j=30;j>=0;j--) { if(a[i]>=bit[j]) { if(hib==-1) { //printf("%d\n",b[j]); ans+=b[j]; hib=j; hb[j]++; } if(!(a[i]&bit[j])) { b[j]++; } } } //printf("%d\n",ans); } printf("%lld\n",ans); } //printf("time=%.3lf",(double)clock()/CLOCKS_PER_SEC); return 0;}

转载于:https://www.cnblogs.com/q934098774/p/5388691.html

你可能感兴趣的文章
利用Fiddler拦截接口请求并篡改数据
查看>>
python习题:unittest参数化-数据从文件或excel中读取
查看>>
在工程中要加入新的错误弹出方法
查看>>
PS 滤镜— — sparkle 效果
查看>>
网站产品设计
查看>>
代理ARP
查看>>
go 学习笔记(4) ---项目结构
查看>>
java中静态代码块的用法 static用法详解
查看>>
Java线程面试题
查看>>
Paper Reading: Relation Networks for Object Detection
查看>>
day22 01 初识面向对象----简单的人狗大战小游戏
查看>>
mybatis源代码分析:深入了解mybatis延迟加载机制
查看>>
Flask三剑客
查看>>
Hibernate-缓存
查看>>
【BZOJ4516】生成魔咒(后缀自动机)
查看>>
提高PHP性能的10条建议
查看>>
svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法...
查看>>
熟用TableView
查看>>
Java大数——a^b + b^a
查看>>
poj 3164 最小树形图(朱刘算法)
查看>>