Trả lời: VO13 - day_1 - Thảo luận thuật toán 8 năm, 1 tháng trước
(+0)
Nguyen_Duy_Khanh viết:
QUOTE: Người đi trước chưa chắc đã là người chiến thắng, nên khi tính được F[n], bạn phải so sánh với tổng số bit 1 - F[n], cái nào nhỏ hơn mới được chọn
Trả lời: VO13 - day_1 - Thảo luận thuật toán 8 năm, 1 tháng trước
(+0)
vodanh9x viết:
QUOTE: bài VOCARD: gọi sl[i] là số lượng số 1 trong dãy bit từ 1->i;
gọi f[i] là điểm số lớn nhất nhận được khi lấy các bit từ 1->i (lấy theo chiều từ i->1) và người lấy trước là người nhận được số điểm này.
thì f[i]=max(sum[i]-f[j]) vs j=i-1..i-k;
hay f[i]=sum[i]-min(f[j]) vs j=i-1..i-k;
ta có thể dùng stack để đpt còn O(N)
không biết có đúng không? :D
:S
Anh chi cái stack ý tưởng làm sao? em làm lần quần không ra.
Trả lời: VO13 - day_1 - Thảo luận thuật toán 8 năm, 1 tháng trước
(+0)
Bài VOCACTUS mình có tư tưởng hơi giống bạn Hellosirius. Mình sử dụng Dijkstra và 2 heap là HeapChan và HeapLe, sau đó dùng HeapChan để Update HeapLe và dùng HeapLe để update lại HeapChan. Kết quả cuối cùng chính là giá trị đỉnh T tại gốc của HeapLe
Trả lời: VO13 - day_1 - Thảo luận thuật toán 8 năm, 1 tháng trước
(+0)
Mình xin đề nghị các VOJ Team đưa thuật toán lên để tất cả các bạn cùng tham khảo. Trân thành cảm ơn các VOJ Team đã rất nhiệt huyết với Tin học nước nhà