HihoCoder 1032 最長回文子串

2021-07-13 22:11:02 字數 728 閱讀 6829

華電北風吹

天津大學認知計算與應用重點實驗室

2016-06-23

題目分析:首先需要注意的是」子串」和」子串行」。問題還有很多變形,如最長公共子串(子串行),最長回文子串(回文子串行)等。

// problem1032.cpp : 定義控制台應用程式的入口點。

// 最長回文子串

// // 張正義 2016-04-12

#include "stdafx.h"

#include

#include

#include

using

namespace

std;

string preprocess(string str)

s.push_back('#');

return s;

}int longestpalindrome(string str)

}int maxindex = 0;

for (int i = 0; iif (p[i]>p[maxindex])

maxindex = i;

}int maxlength = p[maxindex] - 1;

delete p;

return maxlength;

}int main()

}

結題報告:子串因為要求連續還是比較簡單的,以中心擴充套件為基礎,動態規劃做為加速手段,快速求解。

hihoCoder 1032 最長回文子串

求最長回文子串的演算法比較經典的是manacher演算法,下面寫寫自己的理解。文中用到的來自這裡,博主寫的很好,由於為了和 一致,我稍微p了一下。首先,說明一下用到的陣列和其他引數的含義 1 以字串中下標為 例如 字串 所以,陣列 2 為當前已確定的邊界能伸展到最靠右的回文串的中心。例如 設黑色的線...

hihoCoder 1032 最長回文子串

求最長回文串的長度,一道模板題,如果大家有誰不懂這個演算法,可以到這個部落格上看一下,我感覺寫的非常好,仔細看一定能看懂。manacher演算法 include include include include using namespace std const int maxn 1000005 ch...

hihoCoder 1032 最長回文子串

這就是最典型的manacher演算法題,聽起來高大上,而且也很難說清楚,但是實際上並不難,就相當於數學的推理,推出乙個公式即可直接解出。題目如下 時間限制 1000ms 單點時限 1000ms 記憶體限制 64mb 描述 小hi和小ho是一對好朋友,出生在資訊化社會的他們對程式設計產生了莫大的興趣,...