P10900(洛谷题面

题目

题目描述:

在诗人的眼中,数字是生活的韵律,也是诗意的表达。

小蓝,当代顶级诗人与数学家,被赋予了“数学诗人” 的美誉。他擅长将冰冷的数字与抽象的诗意相融合,并用优雅的文字将数学之美展现于纸上。

某日,小蓝静坐书桌前,目光所及,展现着 nn 个数字,它们依次为 a1,a2,,ana_1, a_2, \cdots, a_n,熠熠生辉。小蓝悟到,如果一个数能够以若干个(至少两个)连续的正整数相加表示,那么它就蕴含诗意。例如,数字 66 就蕴含诗意,因为
它可以表示为 1+2+31 + 2 + 3。而 88 则缺乏诗意,因为它无法用连续的正整数相加表示。

小蓝希望他面前的所有数字都蕴含诗意,为此,他决定从这 nn 个数字中删除一部分。请问,小蓝需要删除多少个数字,才能使剩下的数字全部蕴含诗意?

输入格式:

输入的第一行包含一个整数 nn,表示展示的数字个数。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \cdots, a_n,相邻整数之间使用一个空格分隔,表示展示的数字。

输出格式:

输出一行包含一个整数,表示小蓝需要删除的数字个数,以使剩下的数字全部蕴含诗意。

数据范围与说明:

【样例说明】

在样例中,数字 33 可以表示为 1+21 + 2,数字 66 可以表示为 1+2+31 + 2 + 3,数字 88 无法表示为连续的正整数相加,因此,需要删除的数字个数为 11

【评测用例规模与约定】

对于 30%30\% 的评测用例,1n1031 \le n \le 10^31ai1031 \le a_i \le 10^3
对于所有评测用例,1n2×1051 \le n \le 2 \times 10^51ai10161 \le a_i \le 10^{16}

输入输出样例 #1

输入:

1
2
3
3 6 8

输出:

1
1

题意

简述:

在诗人的眼中,数字是生活的韵律,也是诗意的表达。

小蓝,当代顶级诗人与数学家,被赋予了“数学诗人” 的美誉。他擅长将冰冷的数字与抽象的诗意相融合,并用优雅的文字将数学之美展现于纸上。

某日,小蓝静坐书桌前,目光所及,展现着 nn 个数字,它们依次为 a1,a2,,ana_1, a_2, \cdots, a_n,熠熠生辉。小蓝悟到,如果一个数能够以若干个(至少两个)连续的正整数相加表示,那么它就蕴含诗意。例如,数字 66 就蕴含诗意,因为
它可以表示为 1+2+31 + 2 + 3。而 88 则缺乏诗意,因为它无法用连续的正整数相加表示。

小蓝希望他面前的所有数字都蕴含诗意,为此,他决定从这 nn 个数字中删除一部分。请问,小蓝需要删除多少个数字,才能使剩下的数字全部蕴含诗意?

代码

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+10;
ll a[N];
bool check(ll n){
return n&(n-1);
}

int main(){
ll n;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
ll ans=0;
for(int i=0;i<n;i++){
if(!check(a[i])){
ans++;
}
}
cout<<ans;
return 0;
}