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

Chia Mảng Knuth

Đề bài

Mô tả

Cho mảng n số nguyên. Ban đầu cả mảng là một đoạn duy nhất. Mỗi bước, bạn chọn một đoạn và chia nó thành hai đoạn liên tiếp. Chi phí của một lần chia đoạn bằng tổng tất cả các phần tử trong đoạn đó. Mục tiêu là chia mảng thành n đoạn đơn (mỗi đoạn gồm một phần tử) với tổng chi phí nhỏ nhất.

Dữ liệu vào

  • Dòng 1: số nguyên n.
  • Dòng 2: n số nguyên x1,x2,,xn.

Dữ liệu ra

  • Một số nguyên — tổng chi phí nhỏ nhất.

Ràng buộc

  • 1n5000
  • 1xi109

Ví dụ

Input Output Giải thích
5
2 7 3 2 5
43 Chia [2,7,3,2,5] (tổng 19) tại vị trí 2: chi phí 19. Được [2,7] và [3,2,5]. Chia [2,7] (tổng 9): chi phí 9. Chia [3,2,5] tại 2 (tổng 10): chi phí 10. Chia [2,5] (tổng 7): chi phí 7. Tổng = 19+9+10+7 = 45. Tối ưu hơn: chia khác → 43.
1
5
0 Chỉ một phần tử, không cần chia.

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