hiho一下第一周 最長回文子串

2021-06-28 23:53:26 字數 868 閱讀 6981

類似於kmp的思想,利用已經匹配的資訊計算未匹配的資訊。

基本原理就是:我們將f[i]定義為以i為中心的最長回文串長度。那麼如果有f[5]=7,f[4]=3, 那麼我們可以得到f[6] >=3.以此來減少比較次數。當然還有一些細節要處理。比如回文串長度的奇偶性。

這個是我自己寫的版本,不是很精簡。

#include 

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

const

int mod = 1e9 + 7;

const

int inf = 0x7fffffff;

const

int n = 2e6 + 10;

char org[n]; // 初始字串

char str[n]; // 預處理後字串

int f[n]; // 以i為中心的最長回文串長度

int expand(int i, int j, int n)

int solve()

str[len] = 0;

int ans = 1;

int mostright = 0, flag = 0;

for(int i = 0; i < len ; i++)

ans = max(ans, f[i] / 2);

}return ans;

}int main()

return

0;}

hiho一下第一周 最長回文子串

時間限制 1000ms 單點時限 1000ms 記憶體限制 256mb 小hi和小ho是一對好朋友,出生在資訊化社會的他們對程式設計產生了莫大的興趣,他們約定好互相幫助,在程式設計的學習道路上一同前進。這一天,他們遇到了一連串的字串,於是小hi 就向小ho 提出了那個經典的問題 小ho 你能不能分別...

hiho一下 第一周(最長回文子串)

時間限制 1000ms 單點時限 1000ms 記憶體限制 64mb 小hi和小ho是一對好朋友,出生在資訊化社會的他們對程式設計產生了莫大的興趣,他們約定好互相幫助,在程式設計的學習道路上一同前進。這一天,他們遇到了一連串的字串,於是小hi就向小ho提出了那個經典的問題 小ho,你能不能分別在這些...

hiho一下 第一周

題目名稱 最長回文子串 小hi和小ho是一對好朋友,出生在資訊化社會的他們對程式設計產生了莫大的興趣,他們約定好互相幫助,在程式設計的學習道路上一同前進。這一天,他們遇到了一連串的字串,於是小hi 就向小ho 提出了那個經典的問題 小ho 你能不能分別在這些字串中找到它們每乙個的最長回文子串呢?小h...