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

Đường đi lồi dài nhất

Đề bài

Mô tả

Cho một đa giác lồi chặt với n đỉnh (không có ba đỉnh nào thẳng hàng). Các đỉnh được cho theo thứ tự chiều kim đồng hồ.

Bạn cần chọn một đường đi trên tập đỉnh của đa giác, thăm mỗi đỉnh nhiều nhất một lần. Đường đi là một dãy các đỉnh phân biệt; nối hai đỉnh liên tiếp trong dãy bằng một đoạn thẳng. Yêu cầu: các đoạn thẳng này không được cắt hay chạm nhau, ngoại trừ tại các đỉnh chung trong dãy.

Hãy tìm độ dài lớn nhất của một đường đi thỏa mãn điều kiện trên (tổng độ dài các đoạn thẳng).

Dữ liệu vào

  • Dòng đầu chứa số nguyên n là số đỉnh.
  • n dòng tiếp theo, mỗi dòng chứa hai số nguyên xi,yi là tọa độ đỉnh thứ i.

Dữ liệu ra

In ra một số thực là độ dài lớn nhất của đường đi không tự cắt.

Đáp án được chấp nhận nếu sai số tuyệt đối hoặc tương đối so với đáp án chuẩn không vượt quá 109.

Ràng buộc

  • 2n2500
  • |xi|,|yi|109
  • Đa giác lồi chặt, không có ba đỉnh thẳng hàng, các đỉnh cho theo chiều kim đồng hồ.

Ví dụ

Input Output Giải thích
4
0 0
0 1
1 1
1 0
3.414213562373 Một đường đi tối ưu thăm các đỉnh theo thứ tự 0,1,3,2: các đoạn (0,0)(0,1)(1,0)(1,1) có tổng độ dài 1+2+13.4142. Không thể đi qua cả bốn đỉnh mà không tự cắt với tổng lớn hơn.
7
0 0
0 1000
1 1000
1000 999
1001 1
1000 0
1 -1
6825.721902937475 Độ dài lớn nhất của một đường đi không tự cắt qua bảy đỉnh này.

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