30/09/2018, 16:33
Bài tập HackerRank: Maximizing XOR
Em thực sự không hiểu đề! Ai có thể giải thích đề cho em không? Em xin cảm ơn.
Bài liên quan
Em thực sự không hiểu đề! Ai có thể giải thích đề cho em không? Em xin cảm ơn.
Cho 2 vòng lặp
i,j
chạy từL đến R
, dùng phép toánXOR
để tính hai số i và j. Tìm max của phép toáni XOR j
XOR là gì ạ? Anh giải thích rõ hơn giùm e với
Phép toán thao tác bit
Trong ngôn ngữ máy tính, các phép toán trên thao tác bit (tiếng Anh: bitwise operation) được thực hiện trên một hoặc nhiều chuỗi bit hoặc số nhị phân tại cấp độ của từng bit riêng biệt. Các phép toán này được thực hiện nhanh, ưu tiên, được hỗ trợ trực tiếp bởi vi xử lý, và được dùng để điều khiển các giá trị dùng cho so sánh và tính toán. Đối với các loại vi xử lý rẻ tiền, thường thì các phép toán trên thao tác bit nhanh hơn phép chia đáng kể, đôi khi nhanh hơn phép nhân, và đôi khi nhanh hơn ph...
Bài này mình nghĩ không cần 2 vòng for đâu. Có thể chạy trong O(logR) bằng cách xét lần lượt các bit có thể =0 hay không.
Đây là code của mình:
Cũng trong web này, bài lonely integer làm thế nào ạ, em làm kiểu
lùa bò
(kiểu tạo thêm một mảng B, quét mảng A, với A[i] thì tăng B[A[i]] thêm 1 ấy ạ), mà em thấy nó không cần thiết dài dòng thế, giúp em với. Có 1 cách hay đó là sử dụng tính chất của phép xor
a xor b = b xor a
0 xor a= a
a xor a=0
Vì thế khi xor các phần tử trong mảng thì sẽ dc số xuất hiện 1 lần.
Code tham khảo: http://ideone.com/MF1LoX
đây là cách làm của mình chắc cách này cũng gà
Có nhiều cách làm bài này:
Vậy em nên dùng cách nào ạ
Cách xor là nhanh nhất
để em search cái xor, có vẻ hay, mà bây giờ em có nên học phân tích thuật toán không nhỉ (theo như
khan
thì là big theta, big O gì gì ấy), hay để học sauSao em xem wiki, có thấy liên quan gì tới bài
lonely
đâuCái đó em từ từ học cũng dc. Làm nhiều sẽ quen thôi.
Tất nhiên là wiki không thể viết hết ứng dụng của phép xor
Vậy chị cho em ý tưởng bài đó mà = xor được không ạ
Mà cách lùa bò với cách bạn trên kia, cái nào tốt hơn (đọc n^2 so vs max + n => em không so sánh được)
Trong đề sẽ có các thông tin đó. Từ đó em có thể chọn thuật toán thích hợp