【ZOJ 3870】 Team Formation
题意
n个数,找出有几对a、b 符合 a ^ b > max(a,b) 。^表示异或号
分析
对于数a,如果它的二进制是:
1 0 1 0 0 1,那么和它 ^ 后 能比他大的数就是:
0 1 X X X X
0 0 0 1 X X
0 0 0 0 1 X
所以对应的b 在a的最高位1到后面第一次出现0之前,都为0,然后在a为0的位置里至少一个为1。
于是就是最高位1的位置有几个数储存下来就可以计算了。
代码
#include<cstdio>
#include<cstring> int t,n,a[],k[],b,p,ans;//最多32位二进制 int main()
{
scanf("%d",&t);
while(t--)
{
ans=;
memset(k,,sizeof k); scanf("%d",&n); for(int i=; i<=n; i++)
{
scanf("%d",&b); a[i]=b;
p=;
while(b)//统计b有几位
{
b>>=;
p++;
}
k[p]++;//最高位在p
} for(int i=; i<=n; i++)
{
p=;
while(a[i])
{
if((a[i]&)==)//a的最高位后面出现的0
{
ans+=k[p];
}
a[i]>>=;
p++;
}
}
printf("%d\n",ans);
}
return ;
}
【ZOJ 3870】 Team Formation的更多相关文章
- ZOJ 3870:Team Formation(位运算&思维)
Team Formation Time Limit: 2 Seconds Memory Limit: 131072 KB For an upcoming programming contest, Ed ...
- 【POJ 2259】 Team Queue
[题目链接] http://poj.org/problem?id=2259 [算法] 由题,一个人入队时,若这个人所在的组已经有人在队列中,则加入队列,否则排到队末 因此我们发现,这个队列一定是由连续 ...
- 【Uva 1627】Team them up!
[Link]: [Description] 给你n个人; 有一些人之间有认识关系 a认识b,b不一定认识a 让你把这n个人分成两组 使得这两组中的每一组: 组内的人与人之间都相互认识. 并且,使得两组 ...
- 【ZOJ 4070】Function and Function
[链接] 我是链接,点我呀:) [题意] [题解] 递归一会. 会发现最后肯定是0,1一直循环. 开始循环之后就直接返回结果就好. [代码] #include <bits/stdc++.h> ...
- 【ZOJ 4060】Flippy Sequence
[链接] 我是链接,点我呀:) [题意] [题解] 按照两个区间的排列方式 我们可以分成以下几种情况 会发现这两个区间的作用 最多只能把两段连续不同的区间变为相同. 那么写个for处理出连续不相同的一 ...
- 【ZOJ 4067】Books
[链接] 我是链接,点我呀:) [题意] [题解] 统计a中0的个数cnt0 然后m减去cnt0 因为这cnt0个0是一定会取到的. 如果m==0了 那么直接找到数组中的最小值mi 输出mi-1就好 ...
- 【ZOJ 4062】Plants vs. Zombies
[链接] 我是链接,点我呀:) [题意] [题解] 二分最后的最大抵御值mid. 然后对于每个蘑菇. 都能算出来它要浇水几次mid/ai 然后如果第i个蘑菇没浇水达到要求次数. 就在i和i+1之间来回 ...
- 【Zoj 4061】Magic Multiplication
[链接] 我是链接,点我呀:) [题意] [题解] /* for a[1] from 1~9 1*1=1 2*1=2 3*1=3 1*2=2 2*2=4 3*2=6 1*3=3 2*3=6 3*3=9 ...
- 【POJ 1112】Team Them Up!(二分图染色+DP)
Description Your task is to divide a number of persons into two teams, in such a way, that: everyone ...
随机推荐
- Web前端研发工程师编程能力飞升之路
今天看到这篇文章.写的非常有意思,于是转载了.看看我们都处于什么的阶段. [背景] 如果你是刚进入web前端研发领域,想试试这潭水有多深,看这篇文章吧:如果你是做了两三年web产品前端研发,迷茫找不着 ...
- NGUI3.x Button事件
代码调用事件 UI搭建 1.首先创建一个Button,和一个的GameObeject命名为GUIClikEvent 2.方法一:创建一个NGUIClickTest.cs,绑定在Button上 Clic ...
- java 15-4 集合的专用遍历工具 迭代器
Iterator iterator():迭代器,集合的专用遍历方式 A:Object next():获取元素,并移动到下一个位置. 有时候会出现这样的错误: NoSuchElementExceptio ...
- 梳理git分支管理策略
如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System). 眼下最流行的"版本管理系统",非Git莫属. 相比同类软件, ...
- 什么是javascript-SourceMap
简单说,Source map就是一个信息文件,里面储存着位置信息.也就是说,转换后的代码的每一个位置,所对应的转换前的位置. 有了它,出错的时候,除错工具将直接显示原始代码,而不是转换后的代码.这无疑 ...
- Netty关闭客户端
在启动客户端的时候,我们一般会 channelFuture.channel().closeFuture().sync(); 这是一段阻塞的代码,除非链路断了,否则是不会终止的,我们可以在handler ...
- 18SpringMvc_在业务控制方法中收集数组参数
这篇文章我们要解决的问题的多选框选中,并批量删除. 比如:
- 后台跳转到登录页嵌套在iframe的问题(MVC例)
//首页 public ActionResult Index() { if (!Request.IsAuthenticated) //判断权限,没有登录就跳回登录页 {string url = Url ...
- 泛型类型的协变(covariant)和逆变
官网:http://msdn.microsoft.com/zh-cn/library/dd799517.aspx 原文链接:http://book.51cto.com/art/201112/30857 ...
- Elasticsearch 相关名词理解
Cluster包含多个node,Indices不应该理解成动词索引,Indices可理解成关系数据库中的databases,Indices可包含多个Index,Index对应关系数据库中的databa ...