ZOJ 3870 Team Formation(位运算)
2016-03-20 18:21
204 查看
#include <algorithm> #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> #include <string> #include <vector> #include <queue> #include <stack> #include <cmath> #include <ctime> #include <list> #include <set> #include <map> using namespace std; typedef long long ll; #define PB push_back #define UB upper_bound #define LB lower_bound #define MP make_pair #define pii pair<int,int> #define vi vector<int> #define vii vector<vi> #define mst(x,y) memset(x,y,sizeof(x)) #define fr(x) freopen(x,"r",stdin) #define fw(x) freopen(x,"w",stdout) #define iin(x) scanf("%d",&x) #define complete_unique(a) a.erase(unique(a.begin(),a.end()),a.end()) #define sp system("pause") #define INF 1e9 #define MAXN 100005 #define PI acos(-1.0) #define eps 1e-10 const int MOD = 1e9 + 7; /*string s; struct node { int l,r; ll s1,s2; }M[MAXN << 2]; void build(int ind,int l,int r) { M[ind].l = l,M[ind].r = r; if(l == r) { M[ind].s1 = (ll)(s[l - 1] - '0'); M[ind].s2 = -M[ind].s1; return; } build(ind << 1,l,(l + r) >> 1); build(ind << 1 | 1,((l + r) >> 1) + 1,r); M[ind].s1 = } int main() { int t; cin >> t; while(t--) { cin >> s; build(1,1,s.size()); } }*/ int bit[35]; int a[100050]; int main() { int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); memset(bit,0,sizeof(bit)); for(int i = 0; i <n; ++i) { scanf("%d",&a[i]); for(int j = 31;j >=0;--j) { if((1<<j) & a[i]) { bit[j] ++; break; } } } int j; ll sum = 0; for(int i=0;i<n;++i) { for(j=31;j>=0;--j) { if((1<<j) & a[i]) break; } while(j >= 0) { if(!((1<<j) & a[i])) sum += bit[j]; j--; } } printf("%d\n",sum); } return 0; }
相关文章推荐
- ZOJ 3844 Easy Task(暴力)
- Androi学习:Camera初探——控制摄像头拍照
- c语言指针集合
- m面骰子投掷n次,求最大的点的期望值
- Java - java.util.Iterator
- ThinkPHP CURD操作
- VB.NET & DataGridView与数据库的连接
- [置顶] Java、MySQL 、SQLite出错集
- jdbc批量更新数据
- Python学习笔记-返回函数
- 第四次课作业(整体管理、范围管理)
- Java - hashCode() - equals()
- Linux文本三剑客之sed仗剑走天涯
- Android的日期时间格式化
- Spring源码之创建AOP代理
- VC2012/VS2012 MFC串口通讯上位机程序教程笔记
- 经验之谈!35岁程序员的独家面试经历
- iOS开发笔记 - 语言篇之Swift
- Visual C++入门(一)
- 抓取分析网页批量下载评书(2)之分析下载地址