trang chủ / đề bài / cheaters

Bắt kẻ chép bài

Đề bài

Mô tả

Hai học sinh bị nghi ngờ chép bài của nhau. Bài làm của họ được cho bởi hai xâu A và B gồm các chữ cái Latin thường.

Với hai xâu C và D bất kỳ, định nghĩa độ tương đồng của chúng là

S(C,D)=4·LCS(C,D)−|C|−|D|,

trong đó LCS(C,D) là độ dài dãy con chung dài nhất của C và D, còn |X| là độ dài của xâu X.

Vì nhiều khả năng chỉ một phần bài làm bị chép, ta quan tâm tới các đoạn con của hai bài. Hãy tính giá trị lớn nhất của S(C,D) trên mọi cặp (C,D), với C là một đoạn con liên tiếp của A và D là một đoạn con liên tiếp của B.

Lưu ý phân biệt hai khái niệm cùng xuất hiện trong đề: C và D phải là những đoạn liên tiếp (thu được bằng cách xoá một số ký tự ở đầu và một số ký tự ở cuối), còn LCS được tính trên dãy con (thu được bằng cách xoá một số ký tự ở vị trí tuỳ ý).

Cho phép chọn C và D đều rỗng, khi đó S(C,D)=0, nên kết quả luôn không âm.

Dữ liệu vào

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

Dữ liệu ra

Một số nguyên duy nhất là giá trị lớn nhất của S(C,D).

Ràng buộc

  • 1≤n,m≤5000
  • A và B chỉ gồm các chữ cái Latin thường từ a đến z

Ví dụ

Input Output Giải thích
4 5
abba
babab
5 Chọn C= abb (đoạn đầu của A) và D= abab (đoạn cuối của B). Dãy con chung dài nhất là abb, dài 3, nên S=4·3−3−4=5.
8 10
bbbbabab
bbbabaaaaa
12 Chọn C= bbbaba và D= bbbaba, hai đoạn này giống hệt nhau nên LCS=6 và S=4·6−6−6=12.
7 7
uiibwws
qhtkxcn
0 Hai xâu không có ký tự nào chung, nên mọi cặp đoạn khác rỗng đều cho giá trị âm. Cặp rỗng cho 0, và đó là kết quả tốt nhất.

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