Tôi đã bị mắc kẹt trên một vấn đề trong các PEG Thẩm phán Online, gọi Dominos, mà bạn có thể tìm thấy ở đây:Pointers để giải quyết nhiệm vụ lập trình động đầy thử thách này
http://wcipeg.com/problem/domino
tóm lược Mô tả:
Chúng tôi được cung cấp một danh sách các dominos với chiều cao và địa điểm khác nhau, được bố trí theo chiều ngang. Một domino tại vị trí x với chiều cao h, một khi được đẩy sang bên phải, sẽ gõ tất cả các domino tại các vị trí x + 1, x + 2, ..., x + h ngay lập tức. Ngược lại, cùng một domino được đẩy sang bên trái sẽ đánh bật tất cả các domino tại các vị trí x-1, x-2, ..., x-h sang trái.
Số lần đẩy tối thiểu chúng ta có thể làm để lật đổ tất cả các yếu tố thống trị là gì?
Ví dụ:
|
| |
| | | | | |
1 2 3 4 5 6 7 8
trả lời là . Đẩy domino tại vị trí 1 ngay, domino ở vị trí 8 sang trái.
ràng buộc:
Các đầu vào bắt đầu với một số nguyên duy nhất N ≤ 100.000, số lượng domino, tiếp theo là N cặp số nguyên. Mỗi cặp số nguyên thể hiện vị trí và chiều cao của một domino. (1 ≤ vị trí ≤ 1.000.000.000, 1 ≤ chiều cao ≤ 1.000.000.000) Không có hai domino ở cùng một vị trí.
Memory Giới hạn: 64mb
Thời hạn: 1.00s
LƯU Ý: 60% dữ liệu thử nghiệm có N ≤ 5000.
Có một giải pháp brute-force mà giải quyết vấn đề chỉ cho 60% đầu vào.
Dường như cần có giải pháp tuyến tính phụ hoặc thậm chí tuyến tính sử dụng lập trình động để có được AC cho kích thước đầu vào lớn nhất.
Mọi gợi ý sẽ được đánh giá cao.
Có một gợi ý từ tác giả, mà tôi có thể không hoàn toàn hiểu, trong trường hợp nó là hữu ích:
Thực hiện một hàm đệ quy f (n) cung cấp cho tối thiểu # di chuyển cần thiết để lật đổ n domino đầu tiên.
Bây giờ, làm thế nào để bạn liên hệ f (n) với các giá trị trước đó của f? Domino #n có hai lựa chọn : chuyển sang trái (trong trường hợp này nó lật đổ các domino khác) hoặc đi ngay (trong trường hợp một domino khác nằm bên trái của nó lật đổ nó). Hãy thử làm việc từ đó.
Cảm ơn!
Điều quan trọng cần đề cập đến số lượng domino tối đa và giới hạn về chiều cao và vị trí của chúng. Những ràng buộc này, cùng với giới hạn bộ nhớ 64Mb, loại bỏ một số cách tiếp cận. –
Điểm tốt, thêm các hạn chế kích thước đầu vào. –