trang chủ / đề bài / fenceplan

Quy hoạch hàng rào

Đề bài

Mô tả

Bác John nuôi N con bò, đánh số từ 1 đến N. Đàn bò chia thành các nhóm giao tiếp: có M cặp bò kêu với nhau, và hai con bò kêu trực tiếp với nhau thì thuộc cùng một nhóm. Quan hệ này lan truyền, nghĩa là hai con bò cùng nhóm nếu chúng nối được với nhau qua một dãy các cặp kêu. Mỗi con bò thuộc đúng một nhóm.

Mỗi con bò đứng ở một vị trí (xi,yi) trên bản đồ nông trại, không có hai con bò nào đứng cùng một chỗ.

Bác John muốn dựng một hàng rào hình chữ nhật có các cạnh song song với hai trục tọa độ, sao cho có ít nhất một nhóm nằm trọn vẹn bên trong hàng rào. Bò nằm đúng trên cạnh hàng rào vẫn được tính là ở bên trong. Hàng rào được phép có chiều rộng bằng 0 hoặc chiều cao bằng 0.

Hãy tìm chu vi nhỏ nhất của một hàng rào thỏa mãn yêu cầu trên.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên N và M.
  • N dòng tiếp theo, dòng thứ i chứa hai số nguyên xi và yi là tọa độ của con bò thứ i.
  • M dòng cuối, mỗi dòng chứa hai số nguyên a và b cho biết bò a và bò b kêu với nhau.

Dữ liệu ra

Một số nguyên duy nhất là chu vi nhỏ nhất tìm được.

Ràng buộc

  • 2≤N≤105
  • 1≤M<105
  • 0≤xi,yi≤108
  • Không có hai con bò nào cùng vị trí.
  • Mỗi con bò kêu với ít nhất một con bò khác, và không có cặp nào được liệt kê hai lần.

Ví dụ

Input Output Giải thích
7 5
0 5
10 5
5 0
5 10
6 7
8 6
8 4
1 2
2 3
3 4
5 6
7 6
10 Có hai nhóm. Nhóm thứ nhất gồm bò 1,2,3,4, hình chữ nhật nhỏ nhất bao nó trải từ x=0 đến x=10 và từ y=0 đến y=10, chu vi 40. Nhóm thứ hai gồm bò 5,6,7, trải từ x=6 đến x=8 và từ y=4 đến y=7, chu vi 2×(2+3)=10.
6 3
0 0
0 4
5 5
6 5
10 0
10 10
1 2
3 4
5 6
2 Ba nhóm lần lượt là {1,2} với chu vi 2×(0+4)=8, {3,4} với chu vi 2×(1+0)=2, và {5,6} với chu vi 2×(0+10)=20. Hàng rào rẻ nhất bao nhóm {3,4} và có chiều cao bằng 0.

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