trang chủ / bài tập / nocross2

Không Được Cắt Nhau II

Đề bài

Mô tả

Nông dân John có một trang trại với hai dãy cánh đồng nằm song song hai bên một con đường lớn. Mỗi bên có đúng N cánh đồng, được đánh số vị trí từ 1 đến N từ trái sang phải. Mỗi cánh đồng nuôi một giống bò khác nhau, được mã hiệu bởi một số nguyên từ 1 đến N. Mỗi mã hiệu xuất hiện đúng một lần ở mỗi bên.

Nông dân John muốn xây dựng các lối đi ngang qua con đường để kết nối các cánh đồng ở hai phía. Một lối đi có thể được xây dựng nếu hai cánh đồng mà nó nối có mã hiệu giống bò thân thiện với nhau, tức là hai mã hiệu chênh lệch nhau không quá 4.

Hai lối đi được gọi là giao nhau nếu một lối đi nối cánh đồng thứ i bên A với cánh đồng thứ j bên B, và lối đi còn lại nối cánh đồng thứ i bên A với cánh đồng thứ j bên B, với (ii)(jj)<0 (tức là một lối đi "vượt qua" lối đi kia).

Hơn nữa, mỗi cánh đồng chỉ được phép kết nối với tối đa một lối đi.

Hãy tìm số lượng lối đi tối đa có thể xây dựng sao cho không có hai lối đi nào giao nhau.

Dữ liệu vào

  • Dòng đầu tiên: số nguyên N (1N105).
  • N dòng tiếp theo: mã hiệu giống bò của các cánh đồng bên A, từ vị trí 1 đến N.
  • N dòng tiếp theo: mã hiệu giống bò của các cánh đồng bên B, từ vị trí 1 đến N.

Dữ liệu ra

In ra một số nguyên duy nhất — số lượng lối đi tối đa không giao nhau.

Ràng buộc

  • 1N105
  • Mỗi mã hiệu từ 1 đến N xuất hiện đúng một lần ở mỗi bên

Ví dụ

Input Output Giải thích
6
1
2
3
4
5
6
6
5
4
3
2
1
5 Bên A: [1,2,3,4,5,6], Bên B: [6,5,4,3,2,1]. Ta có thể xây 5 lối đi: A[1]↔B[5] (mã 1↔2, chênh 1), A[2]↔B[4] (mã 2↔3, chênh 1), A[3]↔B[3] (mã 3↔4, chênh 1), A[4]↔B[2] (mã 4↔5, chênh 1), A[5]↔B[1] (mã 5↔6, chênh 1). Các lối đi này không giao nhau và mỗi cánh đồng chỉ dùng một lần.

Ghi chú

Hai giống bò có mã hiệu ab là thân thiện nếu |ab|4.

Trong ví dụ trên, cặp A[6]↔B[?] (mã 6) chỉ có thể ghép với mã từ 2 đến N; mã 2 ở B nằm ở vị trí 5 (đã dùng), mã 3,4,5 ở B cũng đã dùng, nên không thể thêm lối đi thứ 6 mà không gây giao nhau.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0