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

Xoá dãy con

Đề bài

Mô tả

Cho một xâu s gồm các chữ cái Latin thường. Bạn có thể xây dựng một xâu p mới từ s bằng cách áp dụng thao tác sau tối đa hai lần:

  1. Chọn một dãy con si1,si2,,sik với 1i1<i2<<ik|s|.
  2. Xoá dãy con đã chọn khỏi s (xâu s có thể trở thành rỗng).
  3. Nối dãy con đã chọn vào bên phải xâu p, tức là p=p+si1si2sik.

Ban đầu p là xâu rỗng.

Ví dụ, cho s=ababcd. Lần đầu chọn dãy con s1s4s5=abc, ta được s=badp=abc. Lần thứ hai chọn dãy con s1s2=ba, ta được s=dp=abcba. Vậy có thể xây dựng p=abcba từ s=ababcd.

Cho xâu đích t, hãy xác định xem có thể xây được p=t bằng thuật toán trên hay không.

Dữ liệu vào

  • Dòng đầu chứa số nguyên T — số lượng test.
  • Với mỗi test:
    • Dòng thứ nhất chứa xâu s gồm các chữ cái Latin thường.
    • Dòng thứ hai chứa xâu t gồm các chữ cái Latin thường.

Dữ liệu ra

Với mỗi test, in ra một dòng duy nhất: YES nếu có thể xây được p=t, ngược lại in NO. Chữ hoa hay chữ thường đều được chấp nhận.

Ràng buộc

  • 1T100
  • 1|t||s|400
  • Tổng độ dài các xâu s trên tất cả các test không vượt quá 400.

Ví dụ

Input Output Giải thích
4
ababcd
abcba
a
b
defi
fed
xyz
x
YES
NO
NO
YES
Test 1 đã minh hoạ ở phần đề. Test 2: s=a không chứa ký tự b. Test 3: s=defi không có cách nào ghép được fedf đứng sau ed. Test 4: chọn dãy con gồm một ký tự x.
3
ababc
abcba
feded
defed
ababcfeded
abcdebafed
YES
YES
YES
Các test đều có thể tách t thành hai đoạn liên tiếp, mỗi đoạn là một dãy con của phần còn lại của s (các dãy con phải đôi một rời nhau).

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 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