coderforces 702B - Powers of Two(二分)
来源:互联网 发布:域名注册的流程是什么 编辑:程序博客网 时间:2024/05/16 14:33
B. Powers of Two
time limit per test
3 secondsmemory limit per test
256 megabytesinput
standard inputoutput
standard outputYou are given n integers a1, a2, ..., an. Find the number of pairs of indexes i, j (i < j) that ai + aj is a power of 2 (i. e. some integer xexists so that ai + aj = 2x).
Input
The first line contains the single positive integer n (1 ≤ n ≤ 105) — the number of integers.
The second line contains n positive integers a1, a2, ..., an (1 ≤ ai ≤ 109).
Output
Print the number of pairs of indexes i, j (i < j) that ai + aj is a power of 2.
Examples
input
47 3 2 1
output
2
input
31 1 1
output
3
Note
In the first example the following pairs of indexes include in answer: (1, 4) and (2, 4).
In the second example all pairs of indexes (i, j) (where i < j) include in answer.
思路:由于Ai + Aj = 2 ^ x , 则有 2 ^ x - Ai = Aj ,即二分查找即可。
#include <cstdio>#include <iostream>#include <algorithm>using namespace std;int main(){ int n; __int64 a[100010]; while(~scanf("%d",&n)) { for(int i = 1 ; i <= n ; i++) scanf("%I64d",&a[i]); sort(a+1,a+1+n); __int64 ans = 0; for(int i = 1 ; i <= n ; i++) { for(int j = 1 ; j <= 31 ; j++) { __int64 t = ((__int64) 1 << j) - a[i]; ans += upper_bound(a+1+i,a+n+1,t) - lower_bound(a+1+i,a+1+n,t); } } printf("%I64d\n",ans); } return 0;}
0 0
- coderforces 702B - Powers of Two(二分)
- Codeforces 702 B. Powers of Two(二分)
- CodeForces 702B Powers of Two(二分)
- 【CodeForces】702B - Powers of Two(二分)
- 【Codeforces】-702B-Powers of Two(二分)
- Codeforces 702B - Powers of Two
- codeforces-702B-Powers of Two
- CodeForces 702B Powers of Two
- Codeforces 702B. Powers of Two
- codeforces 702B - Powers of Two
- CodeForces 702B: Powers of Two(遍历、穷举)
- Libgdx powers of two
- CodeForces702B Powers of Two
- Educational Codeforces Round 15 B. Powers of Two
- Educational Codeforces Round 15, problem: (B) Powers of Two
- Educational Codeforces Round 15 B. Powers of Two (数学)
- Educational Codeforces Round 15 B Powers of Two
- Ivan and Powers of Two
- HDOJ-----2602Bone Collector(DP-----01背包)
- java笔记之值交换
- windows下安装Mysql 5.6(zip格式安装包)
- HDU 1562 Guess the number
- 2016最新CocoaPods安装与使用,问题解决
- coderforces 702B - Powers of Two(二分)
- poj2676Sudoku(dfs)
- WORD2013使用技巧——调整序号中制表位的大小
- 常见接口类型
- HDU 1061Rightmost Digit
- Myeclipse自动创建Hibernate
- shell-----sed命令详解
- 关于getchar()函数的一些看法
- [leetcode]268. Missing Number -- JavaScript 代码