Team Formation---zoj3870(异或)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5518
题意就是有n个数,如果满足a^b > MAX(a, b),就算一种组合,问n个数之间这样的组合有多少个;
可以发现,如果要让一个数增大,只要该数化为二进制后的出现0的位置跟1异或就会变大,
同时需要满足另一个数的最高位为该数出现0位置的位数,
如10可以跟1异或变为11 ,100可以跟10、11、1异或分别变为110,111,101,而101只能跟两位的进行异或,
因为它的0出现的位置为第二位,最后求和就行了。
cnt[i]代表a数组都转换成二进制数后最高位所在位置i为1的数的个数;
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cstdlib>
using namespace std; #define N 100010
int a[N];
int main()
{
int T, b[], cnt[], ans, n;
scanf("%d", &T);
while(T--)
{
memset(a, , sizeof(a));
memset(cnt, , sizeof(cnt));
scanf("%d", &n);
for(int i=; i<n; i++)
scanf("%d", &a[i]);
sort(a, a+n);
ans=;
for(int i=; i<n; i++)
{
int j=;
while(a[i])
{
b[j++] = a[i]%;
a[i]/=;
}
for(int k=; k<j; k++)
{
if(b[k]==)
ans+=cnt[k];///表示首位是这个位置的并且为1的,0与之异或一定变大;
}
cnt[j-]++;///让该位置为1的个数加1;
}
printf("%d\n", ans);
}
return ;
}
Team Formation---zoj3870(异或)的更多相关文章
- ZOJ - 3870 Team Formation(异或)
题意:给定N个数,求这N个数中满足A ⊕ B > max{A, B})的AB有多少对.(A,B是N中的某两个数) 分析: 1.异或,首先想到转化为二进制. eg:110011(A)和 1(B)- ...
- ZOJ3870 Team Formation
/** Author: Oliver ProblemId: ZOJ3870 Team Formation */ /* 思路 1.异或运算,使用^会爆,想到二进制: 2.我们可以试着从前往后模拟一位一位 ...
- 位运算 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 ...
- Team Formation(思维)
Team Formation Time Limit: 3 Seconds Memory Limit: 131072 KB For an upcoming programming contes ...
- 2015 浙江省赛B Team Formation (技巧,动归)
Team Formation For an upcoming programming contest, Edward, the headmaster of Marjar University, is ...
- Zoj 3870——Team Formation——————【技巧,规律】
Team Formation Time Limit: 3 Seconds Memory Limit: 131072 KB For an upcoming programming contes ...
- ZOJ 3870:Team Formation(位运算&思维)
Team Formation Time Limit: 2 Seconds Memory Limit: 131072 KB For an upcoming programming contest, Ed ...
- 第十二届浙江省大学生程序设计大赛-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 ...
- ZOJ 3870 Team Formation 贪心二进制
B - Team Formation Description For an upcoming progr ...
随机推荐
- MVC下载远程文件流(WebClient)
public ActionResult DownLoad_File() { return File(ScLiu(PathUrl), "application/octet-stream&quo ...
- db2
关于3种导入导出操作进行简单的介绍:export:导出数据,支持IXF,DEL或WSFimport:导入数据,可以向表中导入数据,支持上面提到的4种文件类型. load:导入数据,功能和impo ...
- Oracle行列转换的思考与总结
最近几天一直在弄Oracle-SQL的问题,涉及到了一些平时没有用到的东西,也因此而在这里郁闷了好久.现在问题得到了解决虽说不算完美.但是还是和大家一起分享一下. 行列转换之一:sum(case wh ...
- liunx下误删除/var目录下的empty文件,导致ssh连接不上
清理Liunx上不用的文件,导致误删 /var/下的empty文件,因为用的是ftp删的,所以可能有隐藏文件没有看到,导致其他同事都登录不上去 解决方法: 1.在/var文件夹下,重新建立empty文 ...
- hadoop程序MapReduce之DataDeduplication
需求:去掉文件中重复的数据. 样板:data.log 2016-3-1 a 2016-3-2 b 2016-3-2 c 2016-3-2 b 输出结果: 2016-3-1 a 2016 ...
- Zookeeper(二)-- 客户端操作命令
一.前提 开启zookeeper服务端,用客户端连接.输入help,查看可使用命令,如下图所示: 操作无非就是增删改查等. 二.增加 格式:create [-s] [-e] path data acl ...
- Python urllib2 模块
urllib2.urlopen(url, data=None, timeout=<object object>) :用于打开一个URL,URL可以是一个字符串也可以是一个请求对象,data ...
- mysql的if null 的用法
<!-- 查询 分页查询 --> <select id="queryByPageList" resultMap="weixinActivityResul ...
- Android 程序员必须知道的 53 个知识点
1. android 单实例运行方法 我们都知道 Android 平台没有任务管理器,而内部 App 维护者一个 Activity history stack 来实现窗口显示和销毁,对于常规从快捷方式 ...
- 新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用
说到嵌入式,我们首先想到的,就是它的复杂程度,LINUX,BSP,UBOOT,交叉编译,寄存器配置,等等一系列的问题,甚至有的时候我们对此一头雾水,很是头疼,不过我们今天要说的就是关于NUC972的一 ...