CF1005C.Summarize to the Power of Two
普及-
通过率:0%
时间限制:3.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
A sequence a1,a2,…,an is called good if, for each element ai, there exists an element aj (i=j) such that ai+aj is a power of two (that is, 2d for some non-negative integer d).
For example, the following sequences are good:
- [5,3,11] (for example, for a1=5 we can choose a2=3. Note that their sum is a power of two. Similarly, such an element can be found for a2 and a3),
- [1,1,1,1023],
- [7,39,89,25,89],
- [].
Note that, by definition, an empty sequence (with a length of 0) is good.
For example, the following sequences are not good:
- [16] (for a1=16, it is impossible to find another element aj such that their sum is a power of two),
- [4,16] (for a1=4, it is impossible to find another element aj such that their sum is a power of two),
- [1,3,2,8,8,8] (for a3=2, it is impossible to find another element aj such that their sum is a power of two).
You are given a sequence a1,a2,…,an. What is the minimum number of elements you need to remove to make it good? You can delete an arbitrary set of elements.
一个序列 a1,a2,…,an 被称为好序列,当且仅当对其中每个元素 ai,均存在另一个元素 aj(满足 i=j),使得 ai+aj 是 2 的幂(即形如 2d,其中 d 为非负整数)。
例如,以下序列是好序列:
- [5,3,11](例如,对 a1=5,可取 a2=3;注意它们的和是 2 的幂。类似地,对 a2 和 a3 也都能找到满足条件的配对),
- [1,1,1,1023],
- [7,39,89,25,89],
- []。
注意:根据定义,空序列(长度为 0)是好序列。
例如,以下序列不是好序列:
- [16](对 a1=16,无法找到另一个元素 aj,使其与 a1 的和为 2 的幂),
- [4,16](对 a1=4,无法找到另一个元素 aj,使其与 a1 的和为 2 的幂),
- [1,3,2,8,8,8](对 a3=2,无法找到另一个元素 aj,使其与 a3 的和为 2 的幂)。
现给你一个序列 a1,a2,…,an。最少需要删除多少个元素,才能使它变成好序列?你可以删除任意一组元素。
输入格式
The first line contains the integer n (1≤n≤120000) — the length of the given sequence.
The second line contains the sequence of integers a1,a2,…,an (1≤ai≤109).
第一行包含整数 n(1≤n≤120000)—— 给定序列的长度。
第二行包含整数序列 a1,a2,…,an(1≤ai≤109)。
输出格式
Print the minimum number of elements needed to be removed from the given sequence in order to make it good. It is possible that you need to delete all n elements, make it empty, and thus get a good sequence.
输出使给定序列变为“好序列”所需删除的最少元素个数。有可能需要删除全部 n 个元素,使其变为空序列,从而得到一个“好序列”。
输入输出样例
输入#1
6 4 7 1 5 4 9
输出#1
1
输入#2
5 1 2 3 4 5
输出#2
2
输入#3
1 16
输出#3
1
输入#4
4 1 1 1 1023
输出#4
0
说明/提示
In the first example, it is enough to delete one element a4=5. The remaining elements form the sequence [4,7,1,4,9], which is good.
在第一个例子中,只需删除一个元素 a4=5。剩余元素构成序列 [4,7,1,4,9],该序列是“好”的。
输入解题思路,AI测评打分。不知道怎么写?