Khai Thác Gỗ
Nộp bài giải
Điểm:
7,00 (OI)
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Dạng bài
Ngôn ngữ cho phép
Ada, Algol, Assembly, Awk, C, C#, C++, D, Dart, Forth, Fortran, Go, Groovy, Java, Javascript, Kotlin, Lisp, Lua, Nim, ObjC, Pascal, Perl, PHP, Pike, Python, Racket, Ruby, Rust, Scheme, Scratch, Sed, TCL, Typescript, V, Zig
Có cái cây với chiều cao . Bạn cần chặt tất cả các cây xuống chiều cao bằng một cái cưa máy.
- Mỗi lần dùng cưa máy lên cây thứ , chiều cao cây đó giảm đi đơn vị.
- Sau mỗi lần dùng cưa, cưa phải được sạc lại trước khi dùng tiếp.
- Chi phí mỗi lần sạc phụ thuộc vào cây có chỉ số lớn nhất đã bị chặt hoàn toàn (chiều cao bằng ): nếu chỉ số lớn nhất đó là , chi phí một lần sạc là .
- Nếu chưa có cây nào bị chặt hoàn toàn thì không thể sạc cưa.
- Cưa được sạc đầy ngay từ đầu (lần dùng đầu tiên không tốn chi phí).
Đã biết rằng , , dãy tăng ngặt và dãy giảm ngặt.
Hãy tính tổng chi phí tối thiểu để chặt sạch toàn bộ cây.
Dữ liệu vào
- Dòng đầu chứa số nguyên .
- Dòng thứ hai chứa số nguyên .
- Dòng thứ ba chứa số nguyên .
Dữ liệu ra
In ra một số nguyên duy nhất — tổng chi phí tối thiểu để chặt sạch toàn bộ cây.
Ràng buộc
- ,
- ,
- và
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 1 2 3 4 5 5 4 3 2 0 |
25 | Chặt cây (chỉ tốn lần cưa, lần đầu miễn phí). Mọi cây sau đó chặt theo thứ tự , mỗi cây tốn lần sạc và mỗi lần sạc có giá (vì cây có chỉ số lớn nhất đã chặt xong là ). Tổng: . Có thể làm tốt hơn bằng cách chặt cây ngay sau cây : cây tốn . Sau đó nên các cây còn lại miễn phí. Tổng tối ưu là . |
| 6 1 2 3 10 20 30 6 5 4 3 2 0 |
138 | Chặt cây miễn phí, rồi tới cây : ? Không tối ưu. Chiến lược tối ưu là : cây tốn , cây tốn , sau đó nên các cây còn lại miễn phí — tổng . |
Bình luận