Codeforces Round #383 (Div. 2)B.Arpa’s obvious problem and Mehrdad’s terrible solutio【思维】
来源:互联网 发布:网络销售怎么样的 编辑:程序博客网 时间:2024/06/15 19:20
There are some beautiful girls in Arpa’s land as mentioned before.
Once Arpa came up with an obvious problem:
Given an array and a number x, count the number of pairs of indicesi, j (1 ≤ i < j ≤ n) such that, where is bitwisexor operation (see notes for explanation).
Immediately, Mehrdad discovered a terrible solution that nobody trusted. Now Arpa needs your help to implement the solution to that problem.
First line contains two integers n and x (1 ≤ n ≤ 105, 0 ≤ x ≤ 105) — the number of elements in the array and the integerx.
Second line contains n integers a1, a2, ..., an (1 ≤ ai ≤ 105) — the elements of the array.
Print a single integer: the answer to the problem.
2 31 2
1
6 15 1 2 3 4 1
2
In the first sample there is only one pair of i = 1 andj = 2. so the answer is1.
In the second sample the only two pairs are i = 3,j = 4 (since ) andi = 1, j = 5 (since).
A bitwise xor takes two bit integers of equal length and performs the logicalxor operation on each pair of corresponding bits. The result in each position is1 if only the first bit is 1 or only the second bit is1, but will be 0 if both are0 or both are 1. You can read more about bitwisexor operation here: https://en.wikipedia.org/wiki/Bitwise_operation#XOR.
题目大意:
给你N个数,让你找一共有多少数对,使其亦或值为x。
思路:
1、A^B=X-------------->A=X^B.
2、特别判定X==0的时候可能会出错。
Ac代码:
#include<stdio.h>#include<string.h>using namespace std;#define ll __int64ll vis[560000];ll a[560000];int main(){ ll n,x; while(~scanf("%I64d%I64d",&n,&x)) { memset(vis,0,sizeof(vis)); for(int i=1;i<=n;i++) { scanf("%I64d",&a[i]); vis[a[i]]++; } if(x==0) { ll output=0; for(int i=1;i<=550000;i++) { vis[i]--; output+=(1+vis[i])*vis[i]/2; } printf("%I64d\n",output); continue; } else { ll output=0; for(int i=1;i<=n;i++) { if((x^a[i])>100020)continue; output+=vis[x^a[i]]; } printf("%I64d\n",output/2); } }}
- Codeforces Round #383 (Div. 2)B.Arpa’s obvious problem and Mehrdad’s terrible solutio【思维】
- Codeforces Round #383 (Div. 2) B. Arpa’s obvious problem and Mehrdad’s terrible solution
- Codeforces Round #383 (Div. 2) B. Arpa’s obvious problem and Mehrdad’s terrible solution
- Codeforces Round #383 (Div. 2) B. Arpa’s obvious problem and Mehrdad’s terrible solution
- Codeforces Round #383 (Div. 2) B. Arpa’s obvious problem and Mehrdad’s terrible solution 数学
- Codeforces Round #383 (Div. 2) 742B Arpa’s obvious problem and Mehrdad’s terrible solution
- Codeforces Round #383 (Div. 2) B. Arpa’s obvious problem and Mehrdad’s terrible solution
- Codeforces Round #383 (Div. 2) Arpa’s obvious problem and Mehrdad’s terrible solution 数学
- Codeforces Round #383 (Div. 2) B. Arpa’s obvious problem and Mehrdad’s terrible solution(模拟)
- Codeforces Round #383 (Div. 2) B. Arpa’s obvious problem and Mehrdad’s terrible solution 数论、易错
- Codeforces Round #383 (Div. 2) B. Arpa’s obvious problem and Mehrdad’s terrible solution(STL乱搞)
- Codeforces Round #383 (Div. 2) B. Arpa’s obvious problem and Mehrdad’s terrible solution —— 异或
- Arpa’s obvious problem and Mehrdad’s terrible solution CodeForces
- Arpa’s obvious problem and Mehrdad’s terrible solution (CodeForces
- B. Arpa’s obvious problem and Mehrdad’s terrible solution
- Codeforces 742B B. Arpa’s obvious problem and Mehrdad’s terrible solution
- 【codeforces 742B】Arpa’s obvious problem and Mehrdad’s terrible solution
- Codeforces 742B Arpa’s obvious problem and Mehrdad’s terrible solution(map水题)
- apache httpd httpd.conf php php.ini url http https
- Linux命令之pstree - 以树状图显示进程间的关系
- [Leetcode] 1. Two Sum 解题报告
- iOS10+Xcode8 + iOS8 -- Xcode8的assets问题导致运行iOS8崩溃的解决方案
- 关于程序员读书
- Codeforces Round #383 (Div. 2)B.Arpa’s obvious problem and Mehrdad’s terrible solutio【思维】
- notify 通知的遗漏
- webview加载html 及显示效果
- 按本地坐标移动物体
- 盟德插屏无法通过审核解决方案
- Android--DrawerLayout的基本用法
- SQLITE3的锁以及事务
- 12.7 bzoj1607 [Usaco2008 Dec]Patting Heads 轻拍牛头
- orcal创建用户、表空间、授权