//dp:二进制的每一位的最大子序列
#include<bits/stdc++.h>
using namespace std;
int n,a[100001];
int ans=0;
int main()
{
cin>>n;
for(int i=1; i<=n; i++)
{
int x;
scanf("%d",&x);
int num=1;
for(int j=0; j<30; j++)
{
if(x&(1<<j))
num=max(a[j]+1,num);
}
for(int j=0; j<30; j++)
{
if(x&(1<<j))
a[j]=max(a[j],num);
}
ans=max(ans,num);
}
cout<<ans<<endl;
return 0;
}
标签:std,绝世,int,好题,P4310,main
From: https://www.cnblogs.com/dadidididi/p/16739473.html