trang chủ / đề bài / voi13_organ

Sản xuất đồ chơi

Đề bài

Mô tả

Xưởng sản xuất đồ chơi XYZ đã mua các lô hàng ống đàn để làm nguyên liệu sản xuất đàn ống. Mỗi lô gồm n (n>2) ống đàn với độ cao đôi một khác nhau lần lượt là h1,h2,…,hn để khi nhạc công gõ vào các ống đàn với độ cao khác nhau, ống sẽ phát ra các âm thanh khác nhau. Ống đàn thứ i có trọng lượng là hi×m (1≤i≤n).

Quy trình sản xuất đàn của hãng thực hiện theo dây chuyền tự động hoàn toàn như sau: Bắt đầu, robot A sẽ tự động mở một lô và xếp lần lượt n ống có độ cao h1,h2,…,hn lên dây chuyền. Tiếp theo, các ống sẽ được robot B phân thành s (1<s≤n) lô con. Lô con thứ nhất gồm các ống từ 1 đến k1, lô con thứ hai gồm các ống từ k1+1 đến k2, ..., lô con thứ s gồm các ống từ ks−1+1 đến n (1≤k1<k2<…<ks−1<n). Mỗi một lô con sẽ được chuyển cho robot C để lắp thành một chiếc đàn. Robot C sẽ tiến hành sắp xếp các ống thành một dãy đảm bảo điều kiện có không quá w vị trí ống đứng trước cao hơn ống đứng liền kề sau nó (nếu có). Có thể có nhiều phương án sắp xếp các ống đàn trong một lô con thỏa mãn điều kiện này. Mỗi một phương án như vậy sẽ được gọi là một loại đàn.

Sau khi khảo sát thị hiếu người tiêu dùng, Ban giám đốc nhận thấy: trọng lượng hợp lý của một chiếc đàn (được tính bởi tổng trọng lượng của các ống đàn) là một số không nhỏ hơn bmin và không lớn hơn bmax; ngoài ra, không có hai khách hàng nào lại muốn dùng đàn giống nhau. Dễ thấy, số lượng loại đàn khác nhau có thể tạo ra phụ thuộc vào việc phân n ống thành s lô con. Do đó, Ban giám đốc muốn lựa chọn cách phân n ống thành s lô con sao cho tổng trọng lượng các ống trong mỗi lô con đều nằm trong đoạn từ bmin đến bmax và số lượng các loại đàn ống khác nhau có thể sản xuất được là nhiều nhất.

Yêu cầu: Hãy tìm cách phân n ống thành s lô con thỏa mãn các điều kiện đặt ra và sao cho số lượng loại đàn ống khác nhau có thể sản xuất được là nhiều nhất.

Dữ liệu vào

  • Dòng đầu tiên chứa T (T≤10) là số lượng bộ dữ liệu. Tiếp đến là T nhóm dòng, mỗi nhóm dòng cho thông tin về một bộ dữ liệu theo khuôn dạng sau:
    • Dòng thứ nhất chứa sáu số nguyên dương n, s, w, m, bmin, bmax.
    • Dòng thứ hai gồm n số nguyên dương h1,h2,…,hn mô tả độ cao của n ống.

Giới hạn: m<100; bmin,bmax<109; hi<106. Dữ liệu bảo đảm bài toán có lời giải.

Dữ liệu ra

Gồm T dòng, mỗi dòng chứa một số nguyên là số lượng các loại đàn khác nhau tìm được tương ứng với bộ dữ liệu vào.

Ràng buộc

  • 1≤T≤10.
  • 2<n≤200; 1<s≤n; 1≤w≤109.
  • 1≤m<100; 1≤bmin≤bmax<109.
  • 1≤hi<106, các hi đôi một khác nhau.
  • Luôn tồn tại cách phân n ống thành s lô con thỏa mãn điều kiện về trọng lượng.

Subtasks

  • Subtask 1 (30% số test): n≤10.
  • Subtask 2 (30% số test): 10<n≤30.
  • Subtask 3 (40% số test): 30<n≤200.

Mỗi subtask gồm nhiều test, mỗi test được chấm điểm riêng.

Ví dụ

Input Output Giải thích
1
5 2 2 1 9 12
4 6 2 3 7
8 Có 2 cách phân lô hợp lệ. Cách thứ nhất: lô con 1 gồm các ống 4,6,2 cho 6 loại đàn: 1 loại không có vị trí nào ống trước cao hơn ống liền sau (2-4-6), 4 loại có đúng 1 vị trí (2-6-4, 4-2-6, 4-6-2, 6-2-4), 1 loại có đúng 2 vị trí (6-4-2); lô con 2 gồm các ống 3,7 cho thêm 2 loại (3-7, 7-3); tổng cộng 8. Cách thứ hai: lô con 1 gồm 4,6 và lô con 2 gồm 2,3,7, tính tương tự cũng được 8.
2
4 2 1 2 6 14
1 5 2 3
4 2 5 1 1 100
4 1 3 2
4
7
Bộ thứ nhất: trọng lượng các ống là 2,10,4,6; chỉ có cách phân {2,10}, {4,6} là hợp lệ, mỗi lô con cho 2 loại đàn. Bộ thứ hai: w≥n nên lô con L ống cho L! loại đàn; các cách phân có kích thước (1,3), (2,2), (3,1) cho 7, 4, 7 loại.

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