Truyền tin

Đề bài

Mô tả

Cho một xâu s gồm các chữ cái Latin thường. Ta gọi t là một xâu con liên tiếp bất kỳ của s (chọn một đoạn liên tiếp trong s, đoạn này có thể có độ dài từ 1 đến |s|).

Sau khi chọn t, ta được phép thực hiện một số lần biến đổi (có thể không thực hiện lần nào) để đưa t về đúng bằng một xâu đích u cho trước. Mỗi lần biến đổi là một trong ba thao tác:

  • Thêm một chữ cái vào một trong hai đầu của xâu.
  • Xóa một chữ cái ở một trong hai đầu của xâu.
  • Thay một chữ cái thành một chữ cái khác bất kỳ.

Với mỗi xâu con t đã chọn, ta luôn thực hiện số lần biến đổi ít nhất có thể để thu được u. Hãy chọn xâu con t sao cho số lần biến đổi cần thiết là nhỏ nhất, và in ra số lần biến đổi nhỏ nhất đó.

Dữ liệu vào

  • Dòng thứ nhất chứa xâu s.
  • Dòng thứ hai chứa xâu u.

Cả hai xâu đều khác rỗng và chỉ gồm các chữ cái Latin thường.

Dữ liệu ra

  • In ra một số nguyên duy nhất: số lần biến đổi nhỏ nhất cần thực hiện.

Ràng buộc

  • 1≤|s|,|u|≤2000

Ví dụ

Input Output Giải thích
aaaaa
aaa
0 Chọn t là một đoạn độ dài 3 bất kỳ của s, khi đó t đã bằng u nên không cần biến đổi.
abcabc
bcd
1 Chọn t=bca (vị trí 2 đến 4), chỉ cần thay chữ cái cuối để được bcd; số lần biến đổi là 1.
abcdef
klmnopq
7 Không có chữ cái nào của s trùng với chữ cái trong u, nên dù chọn t thế nào cũng cần ít nhất 7 lần biến đổi (bằng độ dài của u).

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