Wannafly挑戰賽12 C刪除子串

2021-08-17 11:57:22 字數 646 閱讀 7351

鏈結

思路:a,b陣列存放到達變化數j所需要的最大長度,對於每次能夠到達的變化數j,一定是由b[j-1]或a[j]的狀態到達,加上當前字元的長度1,同理b陣列也有相應的達到過程。

a[j]=max(a[j]+1, b[j-1]+1);

b[j]=max(b[j]+1,a[j-1]+1);
但是如何確實首字母一定是a的情況,這裡我是這樣處理的,首先我跳過了所有開頭的b並重第乙個a開始計算,並且只能讓b陣列重a[j]的狀態到達,所以把b弄成乙個大負數即可。

#includeusing namespace std;

const int maxn=100005;

const int inf = 0x3f3f3f3f;

char str[maxn];

int a[maxn], b[maxn];

int main()

else}}

int ans=0;

for(i=0;i<=m;++i)

ans=max(ans, max(a[i],b[i]));

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

return 0;

}

牛客Wannafly挑戰賽12 題解

傳送門 說是比賽題解,其實我只會前三題 後面的一定補 t1題意,在乙個長度為n的時間內,問如何選擇存款期限,使得收益最大。dp include include include include using namespace std define fi first define se second d...

Wannafly挑戰賽A 概率DP

給你乙個長 n 的序列,m 次查詢 每次查詢給乙個 x,然後 從序列的最左端 1 開始,每次隨機的選擇乙個右端點 r,如果兩個端點間的區間和不超過 x 就進行一次分割,然後把左端點變成 r 1,否則一直隨機下去。問這樣分割出來的期望段數 第一行兩個數 n,m 之後一行 n 個數表示這個序列 之後m行...

Wannafly挑戰賽5 補題

a 珂朵莉與宇宙 思路 科學暴力 列舉字首和,同時計算字首和裡面可能出現的完全平方數,匹配字首和 與完全平方數的差值是否在之前的字首和出現,出現了幾次就是存在多少個區間,利用的是連續的性質。include using namespace std typedef long long ll const ...