TLEoj Contest #07 - Truy vấn LCP trên đoạn

Xem PDF

Nộp bài

Điểm: 800 (thành phần)
Thời gian: 1.0s
Python 3 5.0s
Bộ nhớ: 256M
Python 3 512M
Input: bàn phím
Output: màn hình

Tác giả:
Dạng bài

Trong buổi học đầu tiên ở lớp, huyhau6a2 được cho một xâu s gồm n ký tự chỉ bao gồm các chữ cái tiếng anh viết thường. Cô đã dạy cho huyhau6a2 một số định nghĩa như sau:

  • Một xâu con của xâu s được tạo ra bằng cách bỏ bớt một số ký tự liên tiếp ở đầu và ở cuối của xâu s, với s[l\rightarrow r] là xâu con s_l s_{l+1}\dots s_r.
  • Gọi p_i là hậu tố bắt đầu từ vị trí i của xâu s, định nghĩa p_i=s[i\rightarrow n].
  • Gọi lcp(s_1,s_2,\dots,s_x) là giá trị k lớn nhất sao cho s_1[1\rightarrow k]=s_2[1\rightarrow k]=\dots=s_x[1\rightarrow k]s_1,s_2,\dots,s_x là các xâu bất kỳ

Sau buổi học, cô giáo đã cho huyhau6a2 q truy vấn, mỗi truy vấn gồm 2 số l,r. Nhiệm vụ của huyhau6a2 là với mỗi truy vấn, hãy tính giá trị của lcp(p_l,p_{l+1},\dots,p_r).

huyhau6a2 đã giải xong rồi, và giờ đây chính là thử thách dành cho các bạn!

Input, Output và Subtasks

Input: (bàn phím)
  • Dòng đầu tiên gồm 2 số n,q (1\le n,q\le 2\times 10^5).
  • Dòng tiếp theo gồm một xâu s độ dài n.
  • Sau đó là q dòng, mỗi dòng gồm 2 số l,r (1\le l<r\le n).
Output: (màn hình)
  • Vỡi mỗi truy vấn, in ra giá trị của lcp(p_l,p_{l+1},\dots,p_r)
Subtasks
  • 30\% số điểm có n\le 100.
  • 30\% số điểm có n\le 2000.
  • 40\% số điểm còn lại không có giới hạn gì thêm.

Sample

Input (bàn phím)
4 3
abbb
1 2
2 3
2 4
Output (màn hình)
0
2
1

Bình luận

Không có bình luận nào.