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