trang chủ / đề bài / cownomicsg

Gen bò (Gold)

Đề bài

Mô tả

Một trang trại có N con bò đốm và N con bò trơn. Bộ gen của mỗi con bò được mô tả bằng một chuỗi độ dài M gồm các ký tự A, C, G, T; vị trí thứ j của mọi chuỗi tương ứng với cùng một vị trí trên bộ gen.

Người ta muốn tìm một đoạn vị trí liên tiếp [l,r] đủ để phân biệt hoàn toàn hai đàn: nếu chỉ đọc các ký tự từ vị trí l đến vị trí r thì không có con bò đốm nào cho ra chuỗi giống hệt chuỗi của một con bò trơn nào.

Hãy tìm độ dài r−l+1 nhỏ nhất của một đoạn như vậy.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên N và M.
  • N dòng tiếp theo, mỗi dòng là bộ gen của một con bò đốm.
  • N dòng cuối, mỗi dòng là bộ gen của một con bò trơn.

Dữ liệu ra

Một số nguyên duy nhất: độ dài nhỏ nhất của đoạn liên tiếp phân biệt được hai đàn.

Ràng buộc

  • 1≤N≤500, 1≤M≤500
  • Mỗi bộ gen gồm đúng M ký tự thuộc tập {A, C, G, T}
  • Hai con bò khác nhau có thể có bộ gen giống nhau, nhưng dữ liệu đảm bảo không có con bò đốm nào có bộ gen trùng hoàn toàn với một con bò trơn nào. Do đó đoạn [1,M] luôn là một đáp án hợp lệ.

Ví dụ

Input Output Giải thích
3 8
AATCCCAT
ACTTGCAA
GGTCGCAA
ACTCCCAG
ACTCGCAT
ACTTCCAT
4 Đoạn gồm 4 vị trí [2,5] cho các chuỗi ATCC, CTTG, GTCG ở đàn đốm và CTCC, CTCG, CTTC ở đàn trơn: không chuỗi nào của đàn đốm trùng với chuỗi nào của đàn trơn. Không có đoạn độ dài 3 nào làm được điều đó.
3 3
CAA
ACA
AAC
AAA
AAA
AAA
3 Mỗi con bò đốm chỉ khác AAA đúng một vị trí, nên mọi đoạn bỏ sót ít nhất một vị trí đều để lọt một con bò đốm trùng với bò trơn AAA. Chỉ có đoạn chứa cả ba vị trí mới phân biệt được.

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