[BZOJ4300]绝世好题

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

n<=100000,ai<=2*10^9

分析

闲来无事,翻别人博客,看到一个标题为绝世好题的博文,我就天真的点进去了。。。结果。。这明明是数位dp啊。。。。哪里绝世好题了(#`O′)!!!
设f[i]为以第i+1位(二进制位)有1的数结尾得到的序列的最长长度,……然后随便搞一下就好了。。。


#include 
#include 
using namespace std;
const int K=1<<5;
int n,ans;
int f[K];

int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++) 
    {
        int t,mx=0;
        scanf("%d",&t);
        for(int j=0;jif(t&(1<1);
        for(int j=0;jif(t&(1<printf("%d\n",ans);
    return 0;

}

你可能感兴趣的:(dp,数位dp)