ABB 2020牛客國慶集訓派對day1

2022-05-05 12:36:10 字數 699 閱讀 7534

abb

長度為n的字串,問最少新增多少字元可以使其構成回文字串

最長回文字串我的第一反應是manacher馬拉車演算法,那我們直接馬拉車找到已有最長回文串,然後總長度減去不就是答案嗎?非也 ~ ~ 。注意是讓我們構造最長回文字串,我們會發現,如果我們用馬拉車找到的最長回文串的最右端不是字串最右端,那此情況就相當於作廢

比如:murderforajarofz

我們可以找到最長回文串forajarof,但是最後一位z並不在裡面,那你無論怎麼構造也用不到forajarof這個回文串,也就是我們要找最長的帶最後乙個字元的回文字串

我們直接在manacher的基礎上改就可以,原本式子中的ans,我們每查詢完一次清零,也就是如果找到的回文串不是帶尾的不要,如果帶尾保留最大值

詳細看**

#include

using

namespace std;

const

int maxn =9*

1e5+4;

char s[maxn]

;char str[maxn]

;int p[maxn]

;//表示以i為中心的最長回文子串長度,

intinit()

intmanacher()

return sum;

}int

main()

ABB 2020牛客國慶集訓派對day1

abb 長度為n的字串,問最少新增多少字元可以使其構成回文字串 最長回文字串我的第一反應是manacher馬拉車演算法,那我們直接馬拉車找到已有最長回文串,然後總長度減去不就是答案嗎?非也 注意是讓我們構造最長回文字串,我們會發現,如果我們用馬拉車找到的最長回文串的最右端不是字串最右端,那此情況就相...

2020牛客國慶集訓派對day5

題目ab cdef ghij ksolved 比賽時通過 賽後通過 比賽時嘗試了未通過 比賽時未嘗試 solved by sstee1xd.3 31 7 題意 問你在1 n 1 n1 n中有多少個數字在k kk進製與 k k k進製表示下結果相同。題解 轉換一下就是要求正負進製下只有奇數字有數字的數...

2020牛客國慶集訓派對day4 補題

2020牛客國慶集訓派對day4 b 題意 題意 求最長等差序列的長度。dp 攤派了我講不明白,參考下這兩篇部落格吧 捂臉 傳送門1 傳送門2 include include include include include include include using namespace std ty...