CAM_HOA - Cắm hoa
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: MrThaodaica

Cho n bình hoa và k bó hoa được đánh số thứ tự từ lớn đến nhỏ. Giá trị thẩm mĩ khi cắm hoa j vào bình i là V[ i ][ j ]. Mỗi bình chỉ có thể cắm 1 hoa và mỗi hoa chỉ có thể cắm trong 1 bình. Hoa có thứ tự j phải cắm trước hoa thứ j+1. Hãy cắm các hoa vào các bình sao cho tổng thẩm mĩ là lớn nhất.

 

Ví dụ

  • input
    3 5
    3 5 4 7 4
    9 6 7 5 9
    2 5 11 7 9
    output
    21

Gọi L[ i ][ j ] là tổng thẩm mĩ khi xét đến hoa i và bình j.
Ta có:
- nếu số hoa nhiều hơn số bình (i>j) thì không có cách cắm hợp lý, tổng thẩm mĩ = - MaxINT
- Nếu số hoa bằng số bình: thì chỉ có 1 cách cắm và tổng thẩm mĩ là tổng từ v[i][1] đến v[i][i]
Ngược lại số hoa ít hơn số bình thì có 2 trường hợp xảy ra:
+ Cắm hoa i vào bình j: Tổng giá trị thẩm mĩ là L(i-1,j-1)+v(i,j) (bằng tổng giá trị trước khi cắm cộng với giá trị thẩm mĩ khi cắm hoa i vào bình j)
+ Không cắm hoa i vào bình j (có thể cắm vào bình trước j): giá trị thẫm mĩ của cách cắm là như cũ : L(i,j-1)
LẤY MAX HAI GIÁ TRỊ NÀY

 

Back to Top