trang chủ / đề bài / dhbb22_game

Trò chơi với các hộp bi

Đề bài

Mô tả

Bài toán dưới đây có rất nhiều cách tiếp cận, bài toán rất phù hợp để giảng dạy và kiểm tra về nội dung các chiến lược phân tích thiết kế thuật toán, bài toán như sau:

Có n hộp bi xếp thành một hàng, hộp thứ i (1≤i≤n) có ai (0≤ai≤109) viên bi. Mỗi lượt, người chơi được chọn một đoạn gồm các hộp bi liên tiếp vẫn còn bi và lấy ra từ mỗi hộp một viên bi. Người chơi được thực hiện không quá r lượt và mong muốn làm cho nhiều hộp rỗng nhất.

Như vậy, mỗi lượt chọn một đoạn khác rỗng gồm các hộp liên tiếp mà tại thời điểm đó hộp nào trong đoạn cũng còn ít nhất một viên bi. Các hộp rỗng ngay từ đầu cũng được tính vào số hộp rỗng.

Yêu cầu: Cho n,r và số lượng bi trong mỗi hộp, hãy tìm số lượng hộp rỗng nhiều nhất đạt được nếu người chơi biết chiến lược chơi tối ưu.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên dương n,r;
  • Dòng thứ hai chứa n số nguyên không âm a1,a2,…,an.

Dữ liệu ra

In ra một số nguyên là số lượng hộp rỗng nhiều nhất đạt được.

Ràng buộc

  • 1≤n≤2000; 1≤r≤109.
  • 0≤ai≤109.

Subtasks

Điểm được tính theo từng test.

  • Có 20% số lượng test ứng với 20% số điểm thỏa mãn: n≤10; r=1;
  • Có 20% số lượng test khác ứng với 20% số điểm thỏa mãn: n≤10; r≤5;
  • Có 30% số lượng test khác ứng với 30% số điểm thỏa mãn: n≤200; r≤200;
  • Có 20% số lượng test khác ứng với 20% số điểm thỏa mãn: n≤200; r≤109;
  • Có 10% số lượng test còn lại ứng với 10% số điểm thỏa mãn: n≤2000; r≤109.

Ví dụ

Input Output Giải thích
6 2
0 2 1 2 2 3
4 Lượt 1: chọn đoạn từ hộp thứ 2 đến hộp thứ 5, trạng thái các hộp bi: 0,1,0,1,1,3. Lượt 2: chọn đoạn từ hộp thứ 4 đến hộp thứ 5, trạng thái các hộp bi: 0,1,0,0,0,3. Như vậy, có 4 hộp rỗng.
5 1
1 0 1 1 2
3 Ví dụ bổ sung (không có trong đề gốc). Hộp 2 rỗng sẵn nên không thể chọn đoạn đi qua nó. Chọn đoạn từ hộp thứ 3 đến hộp thứ 5, trạng thái các hộp bi: 1,0,0,0,1, có 3 hộp rỗng.

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