找到qdez朋友的好题OrzOrz
DQS学长看了两分钟之后说:”傻x题“
嗯……
好吧QAQ
Orz
但我程序就是跑的比DQS快
按位处理?dp?递推?
我觉着这题可以给56考试
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int MAXN = 32 + 5;
int n,k;
int f[MAXN];
int main()
{
scanf("%d",&n);
for(int i = 1;i <= n;i ++)
{
scanf("%d",&k);
int tmp = 0;
for(int j = 0;j <= 30;j ++)
if((k >> j) & 1)
tmp = max(tmp,f[j] + 1);
for(int j = 0;j <= 30;j ++)
if((k >> j) & 1)
f[j] = max(tmp,f[j]);
}
int ans = 0;
for(int i = 0;i <= 30;i ++)
ans = max(ans,f[i]);
printf("%d\n",ans);
return 0;
}