回文序列是指左右對稱的序列。例如1 2 3 2 1是回文序列,但是1 2 3 2 2就不是。我們會給定乙個n×m的矩陣,你需要從這個矩陣中找出乙個p×p的子矩陣,使得這個子矩陣的每一列和每一行都是回文序列。
果然競賽要有信仰→
任意乙個回文的矩形都是可以由小一圈的回文矩形+最外圈上都是回文串,那麼這樣子o(
n3) 暴力一下判斷就行了。如果還想快一點可以預處理回文的情況,但這樣就要考慮mle了
#include
#define rep(i, st, ed) for (int i = st; i <= ed; i += 1)
#define min(x, y) (x)<(y)?(x):(y)
#define n 301
int rc[n][n];
bool ispr[n][n][n];
int main(void)
}rep(i, 1, n - 1)}}
int ans = 0;
int mn = min(n, m);
rep(k, 1, mn)
}if (flag)
for (int l = i - 1, r = i + k; l <= r; l += 1, r -= 1)
}if (!flag)}}
}}
}printf("%d\n", ans);
return
0;}
最長回文子串行 回文子串行個數
主要內容 1 什麼是回文?2 字元子串和字元子串行的區別 3 最長回文子串行的思路和 4 回文子串行個數的思路和 回文指的是正讀和反讀都一樣的字串,如aba,abba等 字元字串指的是字串中連續的n個字元 如palindrome中,pa,alind,drome等都屬於它的字串 而字元子串行指的是字串...
暴力 JZOJ 3229 回文子串行
description 回文序列是指左右對稱的序列。例如1 2 3 2 1是回文序列,但是1 2 3 2 2就不是。我們會給定乙個n m的矩陣,你需要從這個矩陣中找出乙個p p的子矩陣,使得這個子矩陣的每一列和每一行都是回文序列。input 第一行有兩個正整數n,m。接下來是n行,代表乙個n m的矩...
最長回文子串 回文子串行 公共子串行
一 最長回文子串 連續 1.manacher演算法 見前面 2.動態規劃 bool p 100 100 for int i 0 i 2 reutrn s.substr start,maxlength 二 最長回文子串行 不連續 1.遞迴 2.動態規劃 3.將字串反轉,再求兩個字串的最長公共子串行lc...