trang chủ / đề bài / obtainstr

Ghép xâu từ dãy con

Đề bài

Mô tả

Cho hai xâu s và t gồm các chữ cái Latin thường. Ban đầu có một xâu z rỗng. Mỗi thao tác, bạn chọn một dãy con bất kỳ của s và nối nó vào cuối xâu z. Xâu s không thay đổi sau mỗi thao tác.

Dãy con của một xâu là xâu thu được bằng cách xoá đi không hoặc một số ký tự mà không thay đổi thứ tự các ký tự còn lại. Ví dụ, với z = "ac" và s = "abcde", sau một thao tác có thể nhận được z = "acace" (chọn "ace"), z = "acbcd" (chọn "bcd") hoặc z = "acbce" (chọn "bce").

Hãy tính số thao tác ít nhất để z trở thành t, hoặc cho biết điều đó là không thể.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên T, số bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm hai dòng: dòng thứ nhất chứa xâu s, dòng thứ hai chứa xâu t.

Dữ liệu ra

  • Với mỗi bộ dữ liệu, in ra một dòng chứa số thao tác ít nhất, hoặc −1 nếu không thể tạo được t.

Ràng buộc

  • 1≤T≤100
  • 1≤|s|,|t|≤105
  • Tổng độ dài của tất cả các xâu s và t trong một file dữ liệu không vượt quá 2·105.
  • Các xâu chỉ gồm chữ cái Latin thường.

Ví dụ

Input Output Giải thích
3
aabce
ace
abacaba
aax
ty
yyt
1
-1
3
Bộ 1: "ace" là dãy con của "aabce". Bộ 2: chữ "x" không có trong s. Bộ 3: cần ba thao tác "y", "y", "t".
3
aabcf
ace
abbcaaa
aax
ty
yyt
-1
-1
3
Bộ 1: chữ "e" không có trong "aabcf".
3
ecbaa
ace
abbcaaa
aax
ty
yyt
3
-1
3
Bộ 1: các chữ "a", "c", "e" xuất hiện trong s theo thứ tự ngược lại, nên mỗi thao tác chỉ thêm được một chữ: "a", "c", "e".

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