分析:
额,比较水就不说了
最近长期写几百行的代码。。偶尔写一下这种30多行的感觉真心舒爽。。。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define SF scanf
#define PF printf
#define MAXN 100010
#define MAXV 2000000000ll
using namespace std;
typedef long long ll;
ll a[MAXN];
int n;
int dp[35];
int main(){
SF("%d",&n);
for(int i=1;i<=n;i++)
SF("%lld",&a[i]);
for(int i=1;i<=n;i++){
int maxd=1;
for(int k=0;(1ll<<k)<=a[i];k++)
if(a[i]&(1ll<<k))
maxd=max(maxd,dp[k]+1);
for(int k=0;(1ll<<k)<=a[i];k++)
if(a[i]&(1ll<<k))
dp[k]=max(dp[k],maxd);
}
int ans=0;
for(int i=0;i<35;i++)
ans=max(ans,dp[i]);
PF("%d",ans);
}