Nut và những xâu ký tự

Đề bài

Mô tả

Có k xâu, mỗi xâu có độ dài đúng bằng n và chỉ gồm hai chữ cái "a" và "b". Gọi c là số lượng xâu khác nhau mà là tiền tố của ít nhất một trong k xâu đó (mỗi xâu tiền tố chỉ được đếm một lần).

Bạn không biết k xâu cụ thể, chỉ biết rằng mọi xâu đều lớn hơn hoặc bằng xâu s và nhỏ hơn hoặc bằng xâu t theo thứ tự từ điển (với s, t cho trước, cùng độ dài n, và s không lớn hơn t).

Hãy tìm giá trị lớn nhất có thể của c.

Một xâu a nhỏ hơn xâu b theo thứ tự từ điển nếu: a là tiền tố thực sự của b; hoặc tại vị trí đầu tiên hai xâu khác nhau, chữ cái của a đứng trước chữ cái của b trong bảng chữ cái.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và k.
  • Dòng thứ hai chứa xâu s độ dài n gồm các chữ "a" và "b".
  • Dòng thứ ba chứa xâu t độ dài n gồm các chữ "a" và "b".

Đảm bảo s không lớn hơn t theo thứ tự từ điển.

Dữ liệu ra

  • In ra một số nguyên: giá trị lớn nhất có thể của c.

Ràng buộc

  • 1≤n≤5·105
  • 1≤k≤109
  • |s|=|t|=n, các xâu chỉ gồm chữ "a" và "b".

Ví dụ

Input Output Giải thích
2 4
aa
bb
6 Có thể chọn 4 xâu "aa", "ab", "ba", "bb". Các tiền tố khác nhau gồm "a", "b", "aa", "ab", "ba", "bb", tổng cộng 6.
3 3
aba
bba
8 Có thể chọn "aba", "baa", "bba". Đếm được 8 tiền tố khác nhau.
4 5
abbb
baaa
8 Chỉ có đúng hai xâu nằm trong khoảng cho phép; nếu viết cả hai thì c=8.

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