题目传送门

  1. /*
  2. 题意:找出符合 A^B > max (A, B) 的组数;
  3. 位运算:异或的性质,1^1=0, 1^0=1, 0^1=1, 0^0=0;与的性质:1^1=1, 1^0=0, 0^1=0, 0^0=0;
  4. 假设A < B,一定要满足B的最高位对应A的值是0,这样才可能>B(即0^1=1);
  5. 然后比赛时假设A的极限是类似0111111的情况,最后假设有误;
  6. 题解是先把每个数最高位(1)的位置统计个数,1<<4 的意思是 000010000;
  7. 只要与为0,表示最高位p位置的所有数字和当前a[i]异或一定满足,累加ans;
  8. 位运算不熟悉, '⊕'还是别人告诉我是异或的;
  9. 详细解释:http://blog.csdn.net/LYHVOYAGE/article/details/45285731
  10. */
  11. #include <cstdio>
  12. #include <algorithm>
  13. #include <cmath>
  14. #include <iostream>
  15. #include <cstring>
  16. #include <string>
  17. #include <map>
  18. #include <set>
  19. using namespace std;
  20. const int MAXN = 1e5 + ;
  21. const int INF = 0x3f3f3f3f;
  22. int a[MAXN];
  23. int bit[];
  24. void solve(int x)
  25. {
  26. int p = ;
  27. while (p >= )
  28. {
  29. if (x & (<<p))
  30. {
  31. bit[p]++; return ;
  32. }
  33. p--;
  34. }
  35. return ;
  36. }
  37. int main(void) //ZOJ 3870 Team Formation
  38. {
  39. //freopen ("B.in", "r", stdin);
  40. int t, n;
  41. scanf ("%d", &t);
  42. while (t--)
  43. {
  44. memset (bit, , sizeof (bit));
  45. scanf ("%d", &n);
  46. for (int i=; i<=n; ++i)
  47. {
  48. scanf ("%d", &a[i]); solve (a[i]);
  49. }
  50. long long ans = ;
  51. for (int i=; i<=n; ++i)
  52. {
  53. int p = ;
  54. while (p >= )
  55. {
  56. if (a[i] & (<<p)) break;
  57. p--;
  58. }
  59. while (p >= )
  60. {
  61. if (!(a[i] & (<<p))) ans += bit[p];
  62. p--;
  63. }
  64. }
  65. printf ("%lld\n", ans);
  66. }
  67. return ;
  68. }

位运算 ZOJ 3870 Team Formation的更多相关文章

  1. Zoj 3870——Team Formation——————【技巧,规律】

    Team Formation Time Limit: 3 Seconds      Memory Limit: 131072 KB For an upcoming programming contes ...

  2. ZOJ 3870 Team Formation 贪心二进制

                                                    B - Team Formation Description For an upcoming progr ...

  3. ZOJ 3870 Team Formation 位运算 位异或用与运算做的

    For an upcoming programming contest, Edward, the headmaster of Marjar University, is forming a two-m ...

  4. ZOJ - 3870 Team Formation(异或)

    题意:给定N个数,求这N个数中满足A ⊕ B > max{A, B})的AB有多少对.(A,B是N中的某两个数) 分析: 1.异或,首先想到转化为二进制. eg:110011(A)和 1(B)- ...

  5. 费用流 ZOJ 3933 Team Formation

    题目链接 题意:两个队伍,有一些边相连,问最大组对数以及最多女生数量 分析:费用流模板题,设置两个超级源点和汇点,边的容量为1,费用为男生数量.建边不能重复建边否则会T.zkw费用流在稠密图跑得快,普 ...

  6. ZOJ 3933 Team Formation

    费用流裸题......比赛的时候少写了一句话....导致增加了很多无用的边一直在TLE #include<cstdio> #include<cstring> #include& ...

  7. ZOJ 3870:Team Formation(位运算&思维)

    Team Formation Time Limit: 2 Seconds Memory Limit: 131072 KB For an upcoming programming contest, Ed ...

  8. AndyQsmart ACM学习历程——ZOJ3870 Team Formation(位运算)

    Description For an upcoming programming contest, Edward, the headmaster of Marjar University, is for ...

  9. zoj--3870--Team Formation(位运算好题)

    Team Formation Time Limit: 3000MS   Memory Limit: 131072KB   64bit IO Format: %lld & %llu Submit ...

随机推荐

  1. editplus快捷键大全之editplus文件快捷键

    editplus快捷键大全之editplus文件快捷键 新建普通文本 Ctrl+N 新建普通的文本文档 新建浏览器窗口 Ctrl+Shift+B 新建浏览器窗口 新建 HTML 页 Ctrl+Shif ...

  2. Antenna Placement(匈牙利算法 ,最少路径覆盖)

    Antenna Placement Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6991   Accepted: 3466 ...

  3. E. Tetrahedron(数学推导)

    E. Tetrahedron 分类: AC路漫漫2013-08-08 16:07 465人阅读 评论(0) 收藏 举报 time limit per test 2 seconds memory lim ...

  4. 最长不下降子序列 O(nlogn) || 记忆化搜索

    #include<stdio.h> ] , temp[] ; int n , top ; int binary_search (int x) { ; int last = top ; in ...

  5. 关于Eclipse部署openfire3.8.2源码的体会

    因为公司要做人际银行的一个项目需要openfire(服务器)+asmack(客户端),所以需要对消息的推送及消息发送知识的积累.所以需要研究xmpp,以前不是很了解这个技术,现在需要学习.首先就得部署 ...

  6. [BZOJ3872][Poi2014]Ant colony

    [BZOJ3872][Poi2014]Ant colony 试题描述 There is an entrance to the ant hill in every chamber with only o ...

  7. object-c面向对象2

    我们知道在c#中有访问私有成员变量的get  和set方法.这个目的是用来公开实力对象的私有变量.我看了下ios的访问修饰符.也就是private,public,protected.这些基本上都和c# ...

  8. 在cmd命令行中弹出Windows对话框

    有时候用bat写一些小脚本最后会弹出对话框提示操作成功,可以用mshta.exe来实现,它是Windows系统的相关程序,用来执行.HTA文件,一般计算机上面都有这个程序,实现如下: mshta vb ...

  9. codeforces A. Cinema Line 解题报告

    题目链接:http://codeforces.com/problemset/problem/349/A 题目意思:题目不难理解,从一开始什么钱都没有的情况下,要向每一个人售票,每张票价格是25卢布,这 ...

  10. Balance(poj 1837)

    题意:一个天平上有C个挂钩,第i个挂钩的位置为C[i],C[i] < 0表示该挂钩在原点的左边,C[i] > 0表示该挂钩在原点的右边:然后给出G个钩码的重量,问有多少种挂法使得天平保持平 ...