BZOJ 4300 絕世好題 DP

2022-04-02 15:13:09 字數 780 閱讀 7996

題目鏈結

給定序列\(ai\),求\(ai\)的乙個最長子序列\(bi\),滿足\(b_i\&b_\neq0(2\leq i\leq len)\)。

我們只需要判斷,\(b\)序列的上乙個數與當前數與起來有一位不為0即可。

\(f[i][j]\)表示前\(i\)個數中,滿足\(b\)序列的最後乙個數第\(j\)位為\(1\),的最長子序列長度。

想了想怎麼只會\(\log^2\)的轉移。。

當前能轉移\(ai\)為\(1\)的位。因為所有位轉移到的位置都是一樣的,所以在它們中取個max就行了。

複雜度\(o(n\log a)\)。

//1016kb	64ms

#include #include #include //#define gc() getchar()

#define maxin 300000

#define gc() (ss==tt&&(tt=(ss=in)+fread(in,1,maxin,stdin),ss==tt)?eof:*ss++)

#define bit 30

char in[maxin],*ss=in,*tt=in;

inline int read()

int main()

int ans=0;

for(int i=0; i<=bit; ++i) ans=std::max(ans,f[i]);

printf("%d\n",ans);

return 0;

}

BZOJ 4300 絕世好題 dp

description now give you a number sequence ai,you need to calculate the longest length of subsequence bi,meet the requirements of bi bi 1 is not equal...

BZOJ 4300 絕世好題 Dp

time limit 1 sec memory limit 128 mb submit 2197 solved 1175 submit status discuss 給定乙個長度為n的數列ai,求ai的子串行bi的最長長度,滿足bi bi 1 0 2 i len 輸入檔案共2行。第一行包括乙個整數n...

BZOJ4300絕世好題(DP)

description 給定乙個長度為n的數列ai,求ai的子串行bi的最長長度,滿足bi bi 1 0 2 i len input 輸入檔案共2行。第一行包括乙個整數n。第二行包括n個整數,第i個整數表示ai。output 輸出檔案共一行。包括乙個整數,表示子串行bi的最長長度。sample in...