五校聯考3day2 B

2021-09-10 07:33:36 字數 794 閱讀 6370

這題dp即可。

我們先求出rank[i]表示「a[k]=i」中的k。

設f[i][j]表示第i位放j的最大價值和。

我們可以分情況討論:

(對於a[i])

1:第a[i-1]位的字母小於第a[i]位的字母,直接取max即可。

2:第a[i-1]位的字母等於第a[i]位的字母,且第a[i]+1位的大於第a[i-1]+1位的,取max。

最後輸出max(f[n][i])即可。

上標:

#include

#define ll long long

#define n 100010

#define max(x,y) x>y ? x:y

using namespace std;

int n,a[n]

,rank[n]

,w[n][27

];ll x,f[n][27

],ans=0;

inline

intread()

void

update

(ll &x)

bool check

(int x,

int y)

intmain()

for(

int i=

1;i<=

26;i++

) ans=

max(ans,f[n]

[i])

;printf

("%lld\n"

,ans)

;return0;

}

五校聯考3day2 B

這題dp即可。我們先求出rank i 表示 a k i 中的k。設f i j 表示第i位放j的最大價值和。我們可以分情況討論 對於a i 1 第a i 1 位的字母小於第a i 位的字母,直接取max即可。2 第a i 1 位的字母等於第a i 位的字母,且第a i 1位的大於第a i 1 1位的,...

JZOJ 4227 五校聯考3day2 B

傳送門 求對乙個字串在符合其字尾陣列的順序下填上任意字母使得和最大 不知道為什麼可以想到dpdp dp但其實dpdp dp方程還是很好理解的 設f i j f i j f i j 表示填到第i ii位,當前這一位應填jjj include include include include includ...

五校聯考3day2 A

這題考場考慮不太全 但相比於60,其它90分的人,還是很全的 long long我是開了的,然後後面的特判我也是加了的,可是竟然打錯了?其實這題不需要打的像我這樣麻煩 設a i 表示i點還需連線的邊數 ans表示sigma a i max表示max a i 如果max ans 2,就說明全部連項那個...