Bỏ qua đến nội dung

Hướng giải: EXP

EXP

Mã bài: free028 Nhóm: Uncategorized Điểm: 100 điểm
Giới hạn
1,0 s, 256 MB
Tỉ lệ AC
61,1%
Người giải
11
Chỉ đọc hướng giải khi bế tắc và đừng sao chép mã trong đó. Hãy tôn trọng người ra đề và người viết hướng giải: nộp lời giải chính thức khi chưa tự giải được bài có thể khiến bạn bị khóa tài khoản.

Nguồn: Free Contest

Đáp án của bài này chỉ cần tìm \text{min} của các trường hợp có thể viết ra. Tất cả có 9 trường hợp:

  • \(|a ∗ b ∗ c|\)
  • \(|a ∗ b + c|\)
  • \(|a ∗ b - c|\)
  • \(|a + b ∗ c|\)
  • ...
  • |a - b - c|

Khó khăn của bài này là việc xét cho cả 9 trường hợp code tương đối dài. Thay vì xét a + b và a - b (cũng tương tự với b, c) thì xét \(a + 1 ∗ b\) và \(a + (-1) ∗ b\) (lúc này có thể dùng vòng lặp để chạy từ -1 tới 1 với bước nhảy là 2), lúc này việc xét các trường hợp sẽ dễ dàng hơn.

Bài này còn có thể mở rộng ra thay vì 3 toán hạng thì nó thành n toán hạng (n \le 13). Nhưng lúc này việc dùng vòng lặp sẽ rất phức tạp thay vì thế ta dùng ký pháp tiền tố/hậu tố kết hợp với quay lui để giải quyết (bạn đọc có thể tự tìm hiểu thêm).

Bình luận