Description
给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<=len)。
Input
输入文件共2行。
第一行包括一个整数n。
第二行包括n个整数,第i个整数表示ai。
Output
输出文件共一行。
包括一个整数,表示子序列bi的最长长度。
Sample Input
3
1 2 3
Sample Output
2
HINT
对于100%的数据,1<=n<=100000,ai<=10^9。
#include<iostream>#include <algorithm>using namespace std;int main()语言方法
5381AmA6g8ziVd
m10Fb
创业赚钱64262007.02.04 16-23-35
{ int n = 0, maxa = 0; int bin_1[32]; int* a = new int[n]; memset(bin_1, 0, sizeof bin_1); memset(a, 0, sizeof(int)*n); cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= n; i++) { int mx = 0; for (int j = 0; j < 32; j++) if ((1 << j) & a[i]) mx = max(mx, bin_1[j] + 1); for (int j = 0; j < 32; j++) if ((1 << j) & a[i]) bin_1[j] = mx; } for (int i = 0; i < 32; i++) maxa = max(maxa, bin_1[i]); cout << maxa;}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。