time limit: 1 sec memory limit: 128 mb
submit: 2767 solved: 1501
[submit][status][discuss]
description
給定乙個長度為n的數列ai,求ai的子串行bi的最長長度,滿足bi&bi-1!=0(2<=i<=len)。
input
輸入檔案共2行。
第一行包括乙個整數n。
第二行包括n個整數,第i個整數表示ai。
output
輸出檔案共一行。
包括乙個整數,表示子串行bi的最長長度。
sample input
31 2 3
sample output
2 hint
n<=100000,ai<=2*10^9
90分做法,直接按最長上公升子串行的思路dp,資料好像比較水,luogu上可以拿90。
100分做法,跟上面那個完全沒有關係,發現每乙個數都可以用它二進位制意義下的各位數來更新,所以設dp[i]為二進位制第i位等於1時的最大值。
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 100005;
inline
int rd()
while(isdigit(ch))
return x*f;
}int ans,n;
int dp[35];
int main()
}printf("%d",ans);
}
BZOJ4300 絕世好題
description 給定乙個長度為n的數列ai,求ai的子串行bi的最長長度,滿足bi bi 1 0 2 i len input 輸入檔案共2行。第一行包括乙個整數n。第二行包括n個整數,第i個整數表示ai。output 輸出檔案共一行。包括乙個整數,表示子串行bi的最長長度。sample in...
bzoj4300 絕世好題
絕世傻題 既然要求bi andb i 1 0,那麼就讓他一定成立咯。從1到n列舉,當前數為x,前面的數都操作完了,那麼 fx max 1,然後再更新一下gi 沒了 淦。一開始寫了發trie。寫完才發現根本不對啊tat 好虛啊老是犯這種錯 include define rep i,a,b for in...
BZOJ 4300 絕世好題
de scri ptio n 給定乙個長度為 n 的數列ai 求ai 的子串行bi 的最長長度,滿足bi bi 1 0 2 i len in put 輸入檔案共 2 行。第一行包括乙個整數n。第二行包括 n 個整數,第 i個整數表示ai out put 輸出檔案共一行。包括乙個整數,表示子串行bi ...