Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

Algorithms+Data structures+Arts programming=Program

Phân tích Palindrome


Program COUNTPAL.*
Input COUNTPAL.INP
Output COUNTPAL.OUT
Score 100

Một palindromelà một xâu ký tự mà ta có thể đọc được cùng nội dung nếu đọc nó từ trái sang phải
hoặc từ phải sang trái. Bất kỳ xâu ký tự nào cũng có thể được tạo thành từ một hoặc một chuỗi các
palindrome liên tiếp nếu ta coi xâu chỉ gồm một ký tự cũng là palindrome.

Ví dụ, xâu bobseesanna có thể được tạo thành từ các palindrome theo một số cách sau:

 bobseesanna= bob+sees+anna
 bobseesanna=bob+s+ee+s+anna
 bobseesanna=b+o+b+sees+a+n+n+a

Chúng ta quan tâm đến việc tính hàm CountPal(s) được định nghĩa là số cách sử dụng các palindrome
mà có thể tạo thành xâu s nói trên.

Yêu cầu: Hãy tính giá trị hàm CountPal(s) của một xâu s cho trước. Vì kết quả có thể rất lớn nên
chúng ta chỉ quan tâm tới phần dư của nó khi chia cho 109+7

Input:

 Dòng đầu tiên ghi số nguyên n - độ dài của xâu (0<n≤1000)


 Dòng thứ hai ghi n ký tự mô tả xâu

Output: Một số nguyên duy nhất là kết quả của bài toán

Example:
Input Output
bobseesanna 18

Ghi chú: Có 50% số test có n≤200

LÊ THANH BÌNH Trang: 1

You might also like