結果
問題 |
No.2204 Palindrome Splitting (No Rearrangement ver.)
|
ユーザー |
👑 ![]() |
提出日時 | 2023-02-04 01:24:49 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,209 ms / 2,000 ms |
コード長 | 585 bytes |
コンパイル時間 | 176 ms |
コンパイル使用メモリ | 81,920 KB |
実行使用メモリ | 272,256 KB |
最終ジャッジ日時 | 2024-07-02 23:19:21 |
合計ジャッジ時間 | 28,639 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 33 |
ソースコード
def solve(): S="*"+input(); N=len(S)-1 E=[[None for r in range(N+2)] for l in range(N+2)] for l in range(N+1,-1,-1): El=E[l] Ell=E[l+1] if l<N+1 else None for r in range(l,N+2): if r-l<=1: El[r]=True else: El[r]=(S[l]==S[r-1]) and Ell[r-1] DP=[0]*(N+1); DP[0]=N+1 for i in range(1,N+1): for j in range(1,i+1): if E[j][i+1]: DP[i]=max(DP[i], min(DP[j-1], i-j+1)) return DP[N] #================================================== print(solve())