传送门
http://www.lydsy.com/JudgeOnline/problem.php?id=4300
题目大意
求a的子序列b,使得b序列满足 bibi−1<>0
题解
涉及位运算,我们考虑按位来搞
只有1 and 1=1,所以我们按位来算
如果给定
ai
的某一位为1,那么
ai
对上一个这位也为1的有1的贡献
dp[i]表示最后一个数第i位为1的最长子序列长度
var
dp:array[0..32]of longint;
i,j,k:longint;
n,a,ans,tt:longint;
function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end;
begin
readln(n); ans:=0;
for i:=1 to n do
begin
read(a); tt:=0;
for j:=1 to 32 do
if a and (1<<(j-1))<>0
then tt:=max(tt,dp[j]+1);
for j:=1 to 32 do
if a and (1<<(j-1))<>0
then dp[j]:=tt;
ans:=max(ans,tt);
end;
writeln(ans);
end.