Chia cây gỗ sao cho được giá nhiều nhất

Mọi người cho em hướng giải bài tập này không ạ. Em cảm ơn ạ!

cho một đoạn cây dài chiều dài 1<L<10(tự nhập ). Hỏi làm sao để chia cây gỗ sao cho được giá nhiều nhất. biết rằng các giá bán mỗi chiều dài:

L(chiều dài) Giá
1 1
2 7
3 8
4 12
5 15
6 17
7 17
8 20
9 24
10 30

Ưu tiên chọn giá tối ưu nhất. Tức là giá có tỉ lệ với chiều dài cao nhất.

L(chiều dài) Giá Tỉ lệ
1 1 1
2 7 3.5
3 8 2.7
4 12 3
5 15 3
6 17 2.8
7 17 2.4
8 20 2.5
9 24 2.7
10 30 3

Đấy, chẳng phải đoạn có chiều dài là 2 sẽ làm bạn nhanh giàu hơn không?

5 Likes

Mình vẫn chưa hiểu được cách giải trên là thế nào. Ví dụ có một cây gỗ chiều dài 7 (mét), giờ có vài phương án (không đầy đủ):

  • chia thành 3 khúc 2 mét, 1 khúc 1 mét => bán được tiền: 3.5x3 + 1 = 11.5 (đồng)
  • chia thành 1 khúc 4 mét, 1 khúc 3 mét => bán được tiền: 12 + 8 = 20 (đồng)
  • chia thành 1 khúc 5 mét, 1 khúc 2 mét => bán được tiền: 15 + 7 = 22 (đồng)
  • chia thành 1 khúc 7 mét => bán được 17 (đồng)

blah blah blah… vậy bài toán có nghĩa là sao ta? Mình vốn dân văn không phải dân toán nên không hiểu là sẽ thử cho vòng lặp chạy chia rồi cộng thử, cái nào có tổng là max thì truy ngược lại xem nó là được tạo ra bởi những thành phần nào rồi liệt kê ra?

6 Likes

Ồ không, là 7 * 3 + 1 = 22.:face_with_hand_over_mouth:

2 Likes

Tui nghĩ là bài này mình sẽ làm như này:

  • Chọn giá của length vừa nhập gán vào max.
  • Tìm tất cả những cặp có tổng độ dài <= length. Sau đó cập nhập lại max.
  • Tiếp tục như thế cho đến điểm dừng (length = 1) là có thể xét hết trường hợp rồi.
1 Like

Mình đã nhìn… nhầm cột, xin lỗi nhé :smiley:

2 Likes

Vd như vầy anh nhá: giờ em có khúc gỗ chiều dài 6m. Em có thể cắt thành 4 2 thì giá tiền sẽ là 19 đồng. Và từ 4 m gỗ ấy em có thể cắt thành 2 2 nữa thì tổng cộng là 3 khúc mỗi khúc có chiều dài là 2 2 2 và giá tiền lúc này sẽ là 21 đồng

Bạn giải bằng tay ra giấy đi, rồi từ đó chuyển thành pseudo code rồi chuyển thành C++, mình không phải dân lập trình nên không giúp được rồi.

Mẹo: bạn cứ ngồi với tờ giấy và cây bút chì là ra, có thể giải thuật bạn không tối ưu nhưng đó là cách tiếp cận vấn đề. Có nhiều bài tương tự như chia tiền hay là dùng tiền mệnh giá gì đó mà bạn có thể Google để tham khảo.

4 Likes

Bạn nên giải theo hướng tổng quát xét hết tất cả trường hợp, hãy nghĩ rằng bảng giá này có thể thay đổi theo thời gian.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?