Dãy con độ dài hai

Đề bài

Mô tả

Cho hai xâu s và t gồm các chữ cái Latin thường. Xâu t có đúng độ dài 2.

Trong một lần thao tác, bạn chọn một vị trí bất kỳ của s và thay ký tự tại vị trí đó bằng một chữ cái Latin thường tùy ý (có thể trùng với ký tự cũ).

Bạn được thực hiện không quá k thao tác. Hãy tìm cách thao tác để số lần xuất hiện của t như một dãy con của s là lớn nhất.

Một dãy con của s thu được bằng cách xóa đi 0 hoặc nhiều ký tự khỏi s mà không thay đổi thứ tự các ký tự còn lại. Số lần xuất hiện của t như dãy con là số cặp vị trí (i,j) với i<j, si=t1 và sj=t2.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và k: độ dài của s và số thao tác tối đa.
  • Dòng thứ hai chứa xâu s gồm n chữ cái Latin thường.
  • Dòng thứ ba chứa xâu t gồm 2 chữ cái Latin thường.

Dữ liệu ra

In ra một số nguyên: số lần xuất hiện lớn nhất của t như một dãy con của s sau khi thực hiện không quá k thao tác một cách tối ưu.

Ràng buộc

  • 2≤n≤200
  • 0≤k≤n
  • s gồm n chữ cái Latin thường, t gồm 2 chữ cái Latin thường.

Ví dụ

Input Output Giải thích
7 2
abacaba
aa
15 Có thể biến s thành "aaacaaa" với 6 chữ 'a', cho (62)=15 cặp.
15 6
qwertyhgfdsazxc
qa
16 Sau 6 thao tác đặt được thêm các chữ 'q' ở đầu và 'a' ở cuối để tạo tối đa 16 cặp (q, a).
7 3
asddsaf
sd
10 Có thể biến s thành "ssddsdd" và thu được 10 cặp (s, d).
4 2
bbaa
ab
3 Biến s1 thành 'a' và s4 thành 'b' được "abab", cho 3 cặp (a, b).

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