数学题ZOJ3870 Team Formation(2015浙江省赛)
来源:互联网 发布:单片机读写u盘 编辑:程序博客网 时间:2024/04/29 22:36
题目链接:http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5494
题意:给定一些学生的值。两两学生组合是合法当且仅当他们的权值异或值比他们的两个值都要大。问最多有多少个合法的组合
思路:数学题。把每个权值表示成二进制(按二进制来理解就好),然后求出他的最高位。用一个数组data统计所有数最高在i位的有多少个。然后对于每一个数a,只考虑a与比a小的值异或(避免重复)。他和一个小值异或当前仅当小值的最高位在a的二进制表示中为0的位置上。求和。
做麻烦了,实际上a&-a即可得出最高位。
源码:
/*
i&-i = 2µÄ×î´óλ
*/
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <queue>
#include <map>
#include <limits>
#define gmax(a,b) a>b?a:b
#define gmin(a,b) a<b?a:b
using namespace std;
typedef long long ll;
ll ans;
int const MAXN = 50;
int data[MAXN];
int s[100000+5];
int fi_two(int a)
{
int i = 0;
for(i=0;;i++){
if(a==0)
return i;
a = a>>1;
}
}
int main()
{
int t;scanf("%d",&t);
int n;
while(t--){
ans = 0;
memset(data,0,sizeof(data));
scanf("%d",&n);
for(int i=0; i<n; i++){
scanf("%d",&s[i]);
data[fi_two(s[i])]++;
}
sort(s,s+n);
for(int i=0; i<n; i++){
for(int j=0;;j++){
int t = s[i]>>j;
int tt = t&1;
if(t==0)
break;
if(tt==0){
ans += data[j+1];
}
}
}
printf("%lld\n",ans);
}
return 0;
}
- 数学题ZOJ3870 Team Formation(2015浙江省赛)
- ZOJ3870:Team Formation(浙江省赛2015)
- ZOJ3870 Team Formation(2015浙江省赛) 位运算异或
- ZOJ 3870:Team Formation (浙江省赛2015)(二进制操作)
- 2015 浙江省赛 Team Formation (思维题)
- Team Formation 浙江省赛 (异或)
- (思维分析)12th浙江省赛,B.Team Formation
- Zoj 3870 Team Formation(异或运算),zoj3870
- 12th浙江省省赛 Team Formation
- 浙江省 2015 省赛 B Team Formation
- Team Formation 浙江省省赛原题
- zoj3870-Team Formation(异或运算)
- ZOJ3870 Team Formation【位运算+数学】
- ZOJ 3870 Team Formation(浙江省第12届ACM省赛第二题)
- ZOJ-3870-Team Formation【位运算】【12th浙江省赛】
- zoj3870-Team Formation(异或运算+数学规律)
- ZOJ 3870 Team Formation 第12届浙江省省赛B题 [位运算+思维]【数学】
- 第十二届浙江省大学生程序设计大赛-Team Formation
- 将你的Vim 打造成轻巧强大的IDE
- MySQL定义异常和异常处理方法
- 用SoapUI进行Webservice的性能压力测试
- 用stm32输出pwm波使无刷电机转起来
- 关于垃圾回收被误解的7件事
- 数学题ZOJ3870 Team Formation(2015浙江省赛)
- ubuntu中配置tftp服务
- Atitit. VPN加速器代理列表最佳实践
- RDBMS库表与Redis模型间的一种映射方式
- 交换变量A,B的代码运行效率分析
- PostgreSQL源码结构
- locate,which,whereis,find详解
- 回忆录之权限管理
- 面向对象设计原则之接口隔离原则