trang chủ / đề bài / voi05_steel

Khuôn thép

Đề bài

Mô tả

Để chuẩn bị cho Lễ hội kỷ niệm 30 năm ngày Chiến dịch Hồ Chí Minh toàn thắng, giải phóng miền Nam, thống nhất đất nước, người ta cần gia công các loại khuôn thép có hình dạng là các hình đa giác lồi M đỉnh. Mỗi khuôn thép được thiết kế trên một tấm thép cũng có hình dạng là một hình đa giác lồi N đỉnh, không có cạnh nào của khuôn thép nằm gọn trên một cạnh của tấm thép. Để tiện cho việc gia công, khuôn thép được vẽ sao cho hai đường thẳng chứa hai cạnh không kề nhau của nó không cắt nhau ở bên trong tấm thép.

Công việc chính cần làm trong quá trình gia công là sử dụng máy cắt để cắt được khuôn thép từ tấm thép ra. Rõ ràng là cần phải thực hiện M nhát cắt. Mỗi nhát cắt được thực hiện bằng cách chọn một cạnh nào đó của khuôn thép và cắt theo đường thẳng chứa cạnh ấy chia tấm thép (phần còn lại sau các nhát cắt trước) thành hai phần, giữ lại phần chứa khuôn thép cần gia công. Chi phí cắt khuôn thép là tổng chiều dài của các đường cắt.

Ví dụ, với tấm thép là tứ giác có các đỉnh (2,1), (2,5), (5,3.5), (5,2) và khuôn thép là hình vuông có các đỉnh (3,3), (3,4), (4,4), (4,3), có thể cắt lần lượt theo các đường thẳng y=3 (đường cắt dài 3), x=3 (dài 1.5), y=4 (dài 1) và x=4 (dài 1), với tổng chi phí bằng 6.5 đơn vị.

Yêu cầu: Cho biết hình dạng tấm thép và khuôn thép cần gia công. Hãy tìm phương án cắt khuôn thép có chi phí nhỏ nhất.

Dữ liệu vào

  • Dòng đầu ghi số N là số đỉnh của tấm thép.
  • N dòng tiếp theo, mỗi dòng ghi 2 số thực x và y, là toạ độ N đỉnh của tấm thép được liệt kê theo chiều kim đồng hồ bắt đầu từ một đỉnh nào đó.
  • Dòng tiếp theo ghi số M là số đỉnh của khuôn thép.
  • Cuối cùng là M dòng, mỗi dòng ghi 2 số thực x và y là toạ độ M đỉnh của khuôn thép được liệt kê theo chiều kim đồng hồ bắt đầu từ một đỉnh nào đó.

Các số trên một dòng cách nhau ít nhất một dấu cách.

Dữ liệu ra

In ra một số thực duy nhất là chi phí nhỏ nhất tìm được, với 4 chữ số sau dấu chấm thập phân. Kết quả được chấp nhận nếu sai khác so với đáp án không quá 10−3.

Ràng buộc

  • 3≤N≤2000, 3≤M≤2000.
  • −104<x,y<104; các toạ độ có không quá 4 chữ số sau dấu chấm thập phân.
  • Khuôn thép nằm trong tấm thép; hai đa giác đều lồi (không có ba đỉnh liên tiếp thẳng hàng).

Ví dụ

Input Output Giải thích
4
2 1
2 5
5 3.5
5 2
4
3 3
3 4
4 4
4 3
6.5000 Phương án cắt trong đề.
4
-1.793 3.8451
3.8451 1.793
1.793 -3.8451
-3.8451 -1.793
4
-1 1
1 1
1 -1
-1 -1
16.0421 Tấm thép là hình vuông cạnh 6 xoay một góc quanh tâm của khuôn thép (hình vuông cạnh 2).

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