trang chủ / đề bài / thhv22_palin

Đối xứng đôi

Đề bài

Mô tả

Một xâu được gọi là đối xứng, nếu nó đọc ngược cũng giống như đọc xuôi. Ví dụ các xâu "z", "aa", "abba", "madam" là đối xứng và các xâu "ab", "abc", "abab" là không đối xứng.

Một xâu được gọi là đối xứng đôi, nếu nó được tạo thành bằng cách ghép hai xâu đối xứng có độ dài bằng nhau. Ví dụ các xâu "ab", "aabb", "aaaa" là đối xứng đôi và các xâu "aaa", "abba" và "aaaabb" là không đối xứng đôi.

Cho trước một xâu s, bạn hãy viết một chương trình đếm xem có bao nhiêu xâu con của xâu s là đối xứng đôi. Nói cách khác, có bao nhiêu cặp (l,r) sao cho xâu con slsl+1…sr là đối xứng đôi.

Ví dụ, xâu s= "abacac" có 6 xâu con đối xứng đôi là: "ab", "ba", "ac", "ca", "ac", "abacac".

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên dương n (1≤n≤5×105) là độ dài xâu s.
  • Dòng thứ hai chứa xâu s bao gồm các chữ cái tiếng Anh viết thường.

Dữ liệu ra

In ra một số nguyên là số xâu con đối xứng đôi của xâu s.

Ràng buộc

  • 1≤n≤5×105.
  • s gồm n chữ cái tiếng Anh viết thường.

Subtasks

Điểm được tính theo từng test.

  • Subtask 1 (30% số test): 1≤n≤500.
  • Subtask 2 (30% số test): 1≤n≤5000.
  • Subtask 3 (40% số test): không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
6
abacac
6 "ab", "ba", "ac", "ca", "ac" (mỗi xâu ghép từ hai xâu độ dài 1) và "abacac" = "aba" + "cac".
1
e
0 Xâu có độ dài lẻ nên không có xâu con đối xứng đôi nào.
5
aaaaa
6 Có 4 xâu con "aa" và 2 xâu con "aaaa" = "aa" + "aa".

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0