MEX của xâu

Đề bài

Mô tả

Cho một xâu gồm n chữ cái Latin thường. Ta định nghĩa MEX của xâu là xâu ngắn nhất không xuất hiện dưới dạng xâu con liên tiếp (contiguous substring) trong xâu đã cho. Nếu có nhiều xâu cùng độ dài ngắn nhất thỏa mãn, MEX là xâu nhỏ nhất theo thứ tự từ điển. Xâu rỗng không được tính là MEX hợp lệ.

Một xâu a nhỏ hơn xâu b theo thứ tự từ điển khi và chỉ khi một trong hai điều sau đúng:

  • a là tiền tố của bab;
  • tại vị trí đầu tiên mà ab khác nhau, ký tự của a đứng trước ký tự tương ứng của b trong bảng chữ cái.

Xâu con liên tiếp của một xâu là phần thu được bằng cách xóa đi một số ký tự (có thể là 0) ở đầu và một số ký tự (có thể là 0) ở cuối.

Hãy tìm MEX của xâu.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t, số lượng bộ dữ liệu.
  • Với mỗi bộ dữ liệu:
    • Dòng đầu chứa số nguyên n, độ dài của xâu.
    • Dòng thứ hai chứa xâu gồm n chữ cái Latin thường.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra MEX của xâu trên một dòng riêng.

Ràng buộc

  • 1t1000
  • 1n1000
  • Tổng của n trên tất cả các bộ dữ liệu không vượt quá 1000.

Ví dụ

Input Output Giải thích
3
28
qaabzwsxedcrfvtgbyhnujmiklop
13
cleanairactbd
10
aannttoonn
ac
f
b
Bộ 1: xâu chứa đủ 26 chữ cái nên mọi xâu độ dài 1 đều có mặt; xâu độ dài 2 nhỏ nhất vắng mặt là aa? Không, aa và ab đều xuất hiện, còn ac thì không, nên MEX là ac.
Bộ 2: các chữ a, b, c, d, e đều xuất hiện nhưng f thì không, nên MEX là f.
Bộ 3: chỉ có a, n, o, t; chữ b vắng mặt nên MEX là b.
1
25
abcdefghijklmnopqrstuvwxy
z Xâu chứa các chữ từ a đến y nhưng thiếu z, nên MEX là z.
1
26
zyxwvutsrqponmlkjihgfedcba
aa Xâu chứa đủ 26 chữ cái, mọi xâu độ dài 1 đều có mặt. Chữ a chỉ xuất hiện một lần ở cuối nên xâu con aa không tồn tại, do đó MEX là aa.

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