trang chủ / bài tập / strperiod

Số lần lặp xâu

Đề bài

Mô tả

Với một xâu x và một số nguyên dương n, ký hiệu [x,n] là xâu thu được khi nối n bản sao của x liên tiếp. Ví dụ [abc,2]=abcabc.

Ta nói xâu s có thể thu được từ xâu t nếu có thể xóa bớt một số ký tự của t (giữ nguyên thứ tự các ký tự còn lại) để được đúng s. Nói cách khác, s là một xâu con (subsequence) của t. Ví dụ, từ xâu xacbac có thể thu được abacba, nhưng không thu được bx hay aaa.

Cho hai xâu w=[a,b]q=[c,d]. Hãy tìm số nguyên p lớn nhất (p>0) sao cho [q,p] có thể thu được từ w. Nếu không tồn tại giá trị p nào thỏa mãn, in ra 0.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên b, d.
  • Dòng thứ hai chứa xâu a.
  • Dòng thứ ba chứa xâu c.

Các xâu đều khác rỗng và chỉ gồm các chữ cái Latin thường.

Dữ liệu ra

In ra một số nguyên duy nhất là giá trị p lớn nhất. Nếu không tồn tại, in ra 0.

Ràng buộc

  • 1b,d107
  • 1|a|,|c|100

Ví dụ

Input Output Giải thích
10 3
abab
bab
3 w=[abab,10], q=[bab,3]. Ta có thể lấy được [bab,9] (tức [q,3]) làm xâu con của w, nhưng không lấy được [bab,10], nên p=3.
1 1
a
b
0 w=a không chứa ký tự b nào, nên ngay cả một bản sao của q=b cũng không thu được.
1 1000000
a
a
0 w=a chỉ chứa một ký tự a, trong khi q=[a,106] cần 106 ký tự a.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0