2015 浙江省赛B Team Formation (技巧,动归)
Team Formation
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{A, B}).
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 ithinteger denotes the skill level of ith student. Every integer will not exceed 109.
<h4< dd="">Output
For each case, print the answer in one line.
<h4< dd="">Sample Input
2
3
1 2 3
5
1 2 3 4 5
<h4< dd="">Sample Output
1
6 N个球员,每个球员有一个水平值,现在要组队,每个队两个人,这个队的水平就是这两个人水平的异或,这个队能打好代表这个异或值大于人一个队员;
问多少种组队方法;两个队不同即为任意一个队员不同;
燕帅给提供的思路,就是记录每个人最高位出现的位置,对于每个人,只需找比这个人小的水平与其异或大于自己的个数和就好了; 位的问题,一半考虑排序从高位到低位
#include <iostream>
#include<cstring>
#include <string>
#include <algorithm>
using namespace std;
long long a[];
long long b[];
int main()
{
int t;
cin>>t;
memset(a,,sizeof(a));
memset(b,,sizeof(b));
while(t--)
{
int n;
memset(a,,sizeof(a));
memset(b,,sizeof(b));
cin>>n;
for(int i=;i<=n;i++)
{
cin>>a[i];
}
sort(a+,a++n);//从小到大排,就只要考虑第一位
long long sum=;
for(int i=;i<=n;i++)
{
int x=a[i];
int ans=;
while(x)
{
ans++;
if(x%==) sum+=b[ans];//如果该位上是0,看前面有多少个1
x=x/;//向前进一位
}
b[ans]++;//这一位+1,比如1010,在b【4】++;
}
printf("%lld\n",sum);
}
return ;
}
2015 浙江省赛B Team Formation (技巧,动归)的更多相关文章
- 浙江省第十二届省赛 B - Team Formation
Description For an upcoming programming contest, Edward, the headmaster of Marjar University, is for ...
- 2015 浙江省赛 H - May Day Holiday
H - May Day Holiday As a university advocating self-learning and work-rest balance, Marjar Universit ...
- 2015 浙江省赛 Beauty of Array (思维题)
Beauty of Array Edward has an array A with N integers. He defines the beauty of an array as the summ ...
- 第十二届浙江省大学生程序设计大赛-Team Formation 分类: 比赛 2015-06-26 14:22 50人阅读 评论(0) 收藏
Team Formation Time Limit: 3 Seconds Memory Limit: 131072 KB For an upcoming programming contest, Ed ...
- 140 - The 12th Zhejiang Provincial Collegiate Programming Contest(浙江省赛2015)
Ace of Aces Time Limit: 2 Seconds Memory Limit: 65536 KB There is a mysterious organization c ...
- Zoj 3870——Team Formation——————【技巧,规律】
Team Formation Time Limit: 3 Seconds Memory Limit: 131072 KB For an upcoming programming contes ...
- 位运算 ZOJ 3870 Team Formation
题目传送门 /* 题意:找出符合 A^B > max (A, B) 的组数: 位运算:异或的性质,1^1=0, 1^0=1, 0^1=1, 0^0=0:与的性质:1^1=1, 1^0=0, 0^ ...
- zoj The 12th Zhejiang Provincial Collegiate Programming Contest Team Formation
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5494 The 12th Zhejiang Provincial ...
- ZOJ3870 Team Formation
/** Author: Oliver ProblemId: ZOJ3870 Team Formation */ /* 思路 1.异或运算,使用^会爆,想到二进制: 2.我们可以试着从前往后模拟一位一位 ...
随机推荐
- java-四则运算-四
题目要求:查找数组连成环形的和最大的连续子数组 实验代码: package zuoYe; import java.util.Scanner; public class MaxSubArray { pu ...
- 全国城市部分js
var areaJson22 = { "id": "0", "name": "全国", "parentId&q ...
- SQLite在C#中的使用
SQLite是一款轻型的数据库,在一些数据量不太大的程序中,它暂用的资源非常低.支持很多操作系统和许多语言,所以还是很方便的.在C#中,要用的话可以通过网站来下载或者在VS中通过NuGet来下载.这个 ...
- 移动国家号(MCC)
定义移动国家号 Mobile Country Code (MCC)由三位十进制数组成,它表明移动用户(或系统)归属的国家. 格式移动国家号(MCC)由三个十进制数组成,编码范围为十进制的000-999 ...
- Updated: EBS 12.1 + Transportable Tablespaces with Incremental Backup Option
Database migration across platforms of different "endian" (byte ordering) formats using th ...
- Microsoft Edge Certified with EBS 12.1 and 12.2
I am very pleased to announce that Microsoft Edge is certified as a new browser for Oracle E-Busines ...
- 【sparkStreaming】kafka作为数据源的生产和消费
1.建立生产者发送数据 (1)配置zookeeper属性信息props (2)通过 new KafkaProducer[KeyType,ValueType](props) 建立producer (3) ...
- 【2018年全国多校算法寒假训练营练习比赛(第四场)-A】石油采集(匈牙利算法)
试题链接:https://www.nowcoder.com/acm/contest/76/A [思路] 每个‘#’的右边和下边如果也是‘#’说明这两个点构成通路,以此重构一幅图,然后找二分图的最大匹配 ...
- MySQL 5.7.3.0 安装 全程截图
前言: 下一个班快讲MySQL数据库了,正好把服务器里面的MySQL卸了重装了一下. 截个图,作为笔记.也正好留给需要的朋友们. 目录: 下载软件 运行安装程序 安装程序欢迎界面 许可协议 查找更新 ...
- LeetCode OJ:Perfect Squares(完美平方)
Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 1 ...