Palindrome dài nhất

Xem dạng PDF

Gửi bài giải


Điểm: 0,29 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Nguồn bài:
Nguyễn Hoành Tiến
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho xâu ~S~.

Tìm độ dài của xâu con (liên tiếp) đối xứng dài nhất.

Input

Dòng ~1~: Số nguyên dương ~N \leq 5 \times 10^4~.

Dòng ~2~: Xâu ký tự độ dài ~N~.

Output

1 dòng duy nhất gồm độ dài của xâu con đối xứng dài nhất.

Sample Input

5
abacd

Sample Output

3

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -1
    vominhmanh10  đã bình luận lúc 9, Tháng 11, 2025, 3:43

    xâu đối xứng dùng manacher

    import sys
    input = sys.stdin.readline
    
    def palin():
        l = 0
        r = -1
        for i in range(n):
            if i <= r: odd[i] = min(r - i, odd[l + r - i])
            while i - odd[i] - 1 >= 0 and i + odd[i] + 1 < n and s[i - odd[i] - 1] == s[i + odd[i] + 1]:
                odd[i] += 1
            if i + odd[i] > r:
                l, r = i - odd[i], i + odd[i]
        l, r = 0, -1
        for i in range(n - 1):
            j = i + 1
            if j <= r: even[i] = min(r - i, even[l + r - j])
            while i - even[i] >= 0 and j + even[i] < n and s[i - even[i]] == s[j + even[i]]:
                even[i] += 1
            if i + even[i] > r:
                l, r = j - even[i], i + even[i]
        return max(max(odd) * 2 + 1, max(even) * 2)
    
    
    n = int(input())
    s = input().strip()
    odd = [0] * n
    even = [0] * n
    print(palin())
    

  • 3
    luuthanhdatbienhoak66  đã bình luận lúc 11, Tháng 9, 2025, 14:04

    =))

    https://ideone.com/wBFzlC


  • -3
    Hugcodega  đã bình luận lúc 17, Tháng 6, 2025, 13:44 chỉnh sửa
    • Hash + chặt nhị phân là ac

  • -41
    tandochuyentin2022  đã bình luận lúc 19, Tháng 2, 2025, 13:46

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 4
    HeroMinhSteve  đã bình luận lúc 27, Tháng 1, 2025, 15:28

    Gợi ý

    Cài MANACHER là ra


  • -6
    phanthien10r  đã bình luận lúc 3, Tháng 9, 2024, 17:27

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 0
    winky  đã bình luận lúc 2, Tháng 9, 2024, 8:11

    bài này có ver2 không ạ em code O(n^2) vẫn AC ;-;


    • 5
      dienthan901  đã bình luận lúc 17, Tháng 2, 2025, 14:52

      chắc test yếu, ô cứ đắp 10^6 chữ a là ok (")>


    • -1
      dienthan901  đã bình luận lúc 17, Tháng 2, 2025, 14:52

      chắc test yếu, ô cứ đắp 10^6 chữ a là ok (")>


  • -12
    DongDuc08  đã bình luận lúc 20, Tháng 8, 2024, 8:53

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -9
    Huy_inIT  đã bình luận lúc 24, Tháng 7, 2024, 3:07

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -2
    pndhpndh  đã bình luận lúc 16, Tháng 6, 2024, 3:43

    hihi


  • -7
    chunguyen2k8  đã bình luận lúc 14, Tháng 5, 2024, 12:18

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


    • -5
      giga_hedgehog  đã bình luận lúc 15, Tháng 5, 2024, 0:49

      Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -5
    vantien1526  đã bình luận lúc 31, Tháng 8, 2023, 15:25

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


    • 1
      normankr07  đã bình luận lúc 3, Tháng 9, 2023, 4:23

      Tại hàm độ dài max không đơn điệu ý bạn, phải cnp các độ dài chẵn riêng và lẻ riêng Bài này bạn có thể làm bằng manacher, mình thấy dễ hơn, tài liệu thì ở đây: https://vnoi.info/wiki/algo/string/manacher.md


  • 1
    niahauma  đã bình luận lúc 15, Tháng 5, 2023, 11:01

    cho mình hỏi tại sao phải chặt nhị phân chẳn lẻ thế ạ


    • -7
      quocdev2009  đã bình luận lúc 14, Tháng 5, 2024, 7:29

      Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


      • -4
        Vinhzn08  đã bình luận lúc 5, Tháng 7, 2024, 17:10

        orz


    • -5
      y  đã bình luận lúc 15, Tháng 5, 2023, 11:45

      Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -3
    YOASOBI  đã bình luận lúc 3, Tháng 2, 2023, 1:37

    Hash base 31 AC được nè :V


    • -4
      mt1234  đã bình luận lúc 18, Tháng 5, 2023, 5:50

      Code kiểu j v :>>


  • -7
    dasher  đã bình luận lúc 27, Tháng 1, 2023, 16:53

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -10
    tboros2  đã bình luận lúc 31, Tháng 12, 2022, 12:26

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


    • -2
      OrzSeaPosjtive  đã bình luận lúc 31, Tháng 12, 2022, 12:43

      Tại sao lại k nhỉ


      • -11
        nguyenhainam1012cg  đã bình luận lúc 18, Tháng 3, 2023, 15:42

        Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -28
    kh0i  đã bình luận lúc 20, Tháng 6, 2022, 6:19 chỉnh sửa

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 61
    darkkcyan  đã bình luận lúc 3, Tháng 11, 2021, 21:31

    Cảm ơn bạn PPAP_1264589 đã đóng góp 3 test khá mạnh cho bộ test của bài này <3. Mình đã rejudge lại toàn bộ submission AC và lần này không chỉ có một vài mà lên đến khoảng 70 submissions đã mất AC :(.


    • -13
      tboros2  đã bình luận lúc 30, Tháng 12, 2022, 11:34

      Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 64
    I_love_Hoang_Yen  đã bình luận lúc 23, Tháng 8, 2021, 11:25

    Mình vừa thêm 1 test do bạn manhtranVN đóng góp, và có vài submission đã mất AC.