懒猫--按位异或
来源:互联网 发布:java响应ajax请求 编辑:程序博客网 时间:2024/05/20 02:55
来源:cf
yayamao是只很笨的猫。它只认识偶数,它认为成双成对才是完美的。所以对于yayamao来说偶数是可数的,奇数是不可数的。另外,yayamao它总是想写乱七八糟的问题,可是自己又很笨,不会做。这不,这只傻猫又出了道乱七八糟的题目,只能请教你们来做做喽。yayamao面前有N个食物,每一个食物都有一种代号V。现在yayamao要开始整理这么多吃的东东了,就是说yayamao想要统计同一种食物一共有多少个。同时yayamao被告知这N个食物中仅有两种食物是不可数的。yayamao的目的很简单,能不能帮他找出这两种不可数的食物?很简单吧?是不是认为yayamao很笨啊?这么简单都不会,还等什么呢?Kill it in seconds...
Input
第一行一个T(1<=T<=10),代表有T组测试数据。每组数据的第一行是一个N(N<=10^6),代表yayamao面前有N个食物。接下来的一行有N个整数,第i个整数代表第i个食物的种类代号V[i] (0<=V[i]<2^64)。
Output
每组数据输出两个数A和B,A<B, 表示A,B两种食物是不可数的。A,B中间隔一个空格,行末要换行。
Sample Input
2101 1 1 2 2 2 3 3 4 4200 1 0 1 2 3 4 2 3 4 65535 65535 65535 789456123 789456123 789456123 10 10 10 10
Sample Output
1 265535 789456123
#include<stdio.h>#include<algorithm>using namespace std;__int64 a[1000005];int main(){ int n,m,i; __int64 s,t,k,p; scanf("%d",&n); while(n--) { scanf("%d",&m); s=0; for(i=0;i<m;i++) { scanf("%I64d",&a[i]); s^=a[i]; } t=s; k=t; int j=-1; while(k) { int p=k%2; j++; if(p==1) break; k/=2; } for(i=0;i<m;i++) { if(a[i]>>j&1) s^=a[i]; } t^=s; printf("%I64d %I64d\n",min(t,s),max(t,s)); }}
- 懒猫--按位异或
- 按位异或
- 按位异或
- 按位异或
- 按位异或 !
- 按位异或 ^
- 按位异或/按位或
- 按位异或运算符^
- 按位异或运算符^
- 博弈论 + 按位异或
- 按位异或的理解
- 按位异或运算符
- 按位异或运算符^
- 按位异或运算符^
- 按位异或运算符^
- 按位异或运算^
- 按位异或运算符^
- 按位异或运算
- 全球500多名软件高手同台竞技“马拉松”编程赛
- 小结SEO任务中时常涌现的成绩
- 无废话SharePoint入门教程三[创建网站集和网站]
- 如何利用内链让网站排名
- 编程高手这样“长高”
- 懒猫--按位异或
- C++垃圾收集--智能指针【转】
- Git分支笔记
- Java可变参数实例
- mysql select简单用法
- 目前国内seo普遍存在的一种现象
- 译者序+前言+第一章
- 增强型foreach循环
- 【构造方法】