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

Số xâu con tốt

Đề bài

Mô tả

Cho xâu s chỉ gồm các chữ cái Latinh in thường. Với một xâu t khác rỗng, ta gọi tập kí tự của t là tập hợp các kí tự xuất hiện trong t. Ví dụ, tập kí tự của xâu aab{a,b}.

Xét xâu con s[a,b]=sasa+1sb (với 1ab|s|). Hai xâu con được coi là khác nhau nếu chúng nằm ở hai vị trí khác nhau, kể cả khi nội dung giống hệt.

Cho trước một tập kí tự C khác rỗng. Một xâu con s[a,b] có tập kí tự bằng đúng C được gọi là cực đại theo bao hàm nếu không tồn tại xâu con s[x,y] nào của s thỏa mãn 1xaby|s|, yx+1>ba+1, và tập kí tự của s[x,y] cũng bằng C.

Ký hiệu r(C,s) là số lượng xâu con cực đại theo bao hàm có tập kí tự đúng bằng C.

Cho xâu sm tập kí tự C1,C2,,Cm (mỗi tập được mô tả bằng một xâu không có kí tự lặp). Với mỗi i, hãy tính r(Ci,s).

Dữ liệu vào

  • Dòng đầu chứa xâu s khác rỗng.
  • Dòng thứ hai chứa số nguyên m.
  • Tiếp theo là m dòng, dòng thứ i chứa một xâu ci gồm các kí tự khác nhau, mô tả tập Ci.

Dữ liệu ra

In ra m số nguyên, mỗi số trên một dòng — giá trị r(Ci,s) tương ứng.

Ràng buộc

  • 1|s|106
  • 1m104
  • Mọi kí tự trong các xâu đều là chữ cái Latinh in thường.
  • Các kí tự trong mỗi ci đôi một khác nhau. Các tập Ci không nhất thiết phân biệt.

Ví dụ

Input Output Giải thích
abacaba
3
ac
ba
a
1
2
4
Với C={a,c}: chỉ có xâu con abaca (vị trí 1..5) có tập kí tự {a,b,c}… nhưng cực đại theo bao hàm cho tập đúng {a,c}aca (vị trí 3..5), trả về 1. Với C={b,a}: hai đoạn cực đại là aba (1..3) và aba (5..7). Với C={a}: bốn vị trí đơn lẻ a (1, 3, 5, 7) là cực đại.
aaaaa
2
a
a
1
1
Toàn xâu aaaaa là xâu con cực đại duy nhất có tập kí tự {a}. Hai truy vấn giống nhau đều cho kết quả 1.

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