遞推 BZOJ 4300 絕世好題

2022-06-03 21:12:11 字數 1010 閱讀 5079

time limit: 1 sec  memory limit: 128 mb

submit: 564  solved: 289

[submit][status][discuss]

給定乙個長度為n的數列ai,求ai的子串行bi的最長長度,滿足bi&bi-1!=0(2<=i<=len)。

輸入檔案共2行。

第一行包括乙個整數n。

第二行包括n個整數,第i個整數表示ai。

輸出檔案共一行。

包括乙個整數,表示子串行bi的最長長度。

31 2 3

2對於100%的資料,1<=n<=100000,ai<=10^9。

剛考完聯賽回家搞了乙個星期常規=- =

然後老師叫我們還是要保持一下手感的是吧

然後隨便找了一道水題。。

貌似是單調dp?

發現不行

然後想了一下按位單調dp

感覺好像可以但不是最優解。。

看了一下status

發現最短的**400b左右

貌似不是單調dp?

然後查了一下。。

f[j]代表第j位的最優值

之後每次更新乙個數每一位的最優值為所有位的f值+1即可。

1 #include2 #include3 #include4 #include5

6#define maxn 10000178

using

namespace

std;910

inta[maxn],f[maxn];

1112 inline int

in()

1319

20int

main()

2131

int ans=0;32

for(int j=0;j<=30;j++)ans=max(ans,f[j]);

33 printf("%d"

,ans);

34return0;

35 }

view code

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 ...