thảo luận Leetcode contest, đường tới Guardian

  • Người tạo chủ đề Người tạo chủ đề freedom.9
  • Ngày bắt đầu Ngày bắt đầu
Trạng thái
Không mở để trả lời thêm.
bác giải thích chút về Q3 dc ko, e đọc code của mấy top ko hiểu
sao lại liên quan tới binary search nhỉ.
Bài này mình không biết cách giải, nhưng có đọc solution và phân tích cách giải, tốn 2h. Mình thử post lên đây bằng spoiler cho nó ngắn lại nhưng nó mất hết format mất
Mình gửi thông qua đây nha LC Contest 393 Q3 (https://codebeautify.org/alleditor/y24b704b7)
Link trên mình có chứa mấy đường link refer tới origin solution, bác có thể vào đó đọc để lấy ý tưởng
 
May qúa, sáng em bận việc nên không tham gia :)
2 bài hôm nay nghiền ngẫm thì hay, bài 3 nghĩ được nhưng cài đặt lâu quá, mấy bài lạ cứ phải chậm chậm vừa làm vừa ngẫm
đi phỏng vấn gặp 2 bài này nó đuổi mẹ về
wlyO8eh.png


bác giải thích chút về Q3 dc ko, e đọc code của mấy top ko hiểu
sao lại liên quan tới binary search nhỉ.
viết 1 cái function với param là num có chức năng đếm xem từ số num đổ lại có bao nhiêu bội
hàm này thì mình tính tất cả các bội của n số thôi, 2^n bội, xong dùng nguyên lí bao hàm loại trừ để cộng trừ trùng lặp v.v (code của tụi top nó gọi là PIE (Principle of Inclusion and Exclusion) là vì thế)
bây giờ việc cần làm là tìm số nhỏ nhất thoả mãn từ số đó đổ lại có K bội
cận dưới = 1, cận trên = số bé nhất * K, binary search trên đoạn này
 
Bài này mình không biết cách giải, nhưng có đọc solution và phân tích cách giải, tốn 2h. Mình thử post lên đây bằng spoiler cho nó ngắn lại nhưng nó mất hết format mất
Mình gửi thông qua đây nha LC Contest 393 Q3 (https://codebeautify.org/alleditor/y24b704b7)
Link trên mình có chứa mấy đường link refer tới origin solution, bác có thể vào đó đọc để lấy ý tưởng
2 bài hôm nay nghiền ngẫm thì hay, bài 3 nghĩ được nhưng cài đặt lâu quá, mấy bài lạ cứ phải chậm chậm vừa làm vừa ngẫm
đi phỏng vấn gặp 2 bài này nó đuổi mẹ về
wlyO8eh.png



viết 1 cái function với param là num có chức năng đếm xem từ số num đổ lại có bao nhiêu bội
hàm này thì mình tính tất cả các bội của n số thôi, 2^n bội, xong dùng nguyên lí bao hàm loại trừ để cộng trừ trùng lặp v.v (code của tụi top nó gọi là PIE (Principle of Inclusion and Exclusion) là vì thế)
bây giờ việc cần làm là tìm số nhỏ nhất thoả mãn từ số đó đổ lại có K bội
cận dưới = 1, cận trên = số bé nhất * K, binary search trên đoạn này
thanks mấy bác,
TOxIXtu.gif
đã nghiền ngẫm ra
 
mấy bác cho em hỏi là giả sử với cùng 1 thuật toán (thuật toán hoàn toàn như nhau) thì việc implement bằng python và implement bằng C++ nó có khác biệt nhiều về mặt runtime không ? có nhiều lần mình check solution thì thấy thuật toán y chang bài của mình nhưng vì solution dùng C++ nên nhannh hơn so với mình dùng python ??
 
mấy bác cho em hỏi là giả sử với cùng 1 thuật toán (thuật toán hoàn toàn như nhau) thì việc implement bằng python và implement bằng C++ nó có khác biệt nhiều về mặt runtime không ? có nhiều lần mình check solution thì thấy thuật toán y chang bài của mình nhưng vì solution dùng C++ nên nhannh hơn so với mình dùng python ??
hình như nó quy định tle cho mỗi ngôn ngữ mà bác, mấy khúc so runtime nó cũng so với cùng ngôn ngữ thôi
 
mà mấy ông q4 ngồi nghĩ được mấy cái segment cũng quái thật, em thấy mấy bài kiểu này toàn phang thẳng dp memo :))
 
mà mấy ông q4 ngồi nghĩ được mấy cái segment cũng quái thật, em thấy mấy bài kiểu này toàn phang thẳng dp memo :))
toàn thợ CP, kiểu gì chả có sẵn implement + nằm lòng các trường hợp cần dùng đến
zFNuZTA.png
chứ làm gì có ai ngồi nghĩ ra được segment tree, sparse table
 
Sao Q3 mình đọc solution ko hiểu gì nhỉ =(( chắc hổng mẹ kiến thức toán phần này rồi thấy tụi nó code khó hiểu quá :ah:
 
Sao Q3 mình đọc solution ko hiểu gì nhỉ =(( chắc hổng mẹ kiến thức toán phần này rồi thấy tụi nó code khó hiểu quá :ah:
  • Tạo mảng coins mới chỉ gồm coin không chia hết cho nhau
  • binary search tới giá trị mid thỏa điều kiện

k == ( tổng của mid/LCM(coin a, coin b, ... ) nếu số lượng coin lẻ) - ( tổng của mid/LCM(coin a, coin b, ... ) nếu số lượng coin chẵn)

PIE:
1713148851399.png

lcm: bội chung nhỏ nhất ,GCD = ước chung lớn nhất
lcm(a,b) = a * b / gcd(a,b)

e tóm tắt lại cho bác
 
Sửa lần cuối:
  • Tạo mảng coins mới chỉ gồm coin nguyên tố cùng nhau.
  • binary search tới giá trị mid thỏa điều kiện

k == ( tổng của mid/LCM(coin a, coin b, ... ) nếu số lượng coin lẻ) - ( tổng của mid/LCM(coin a, coin b, ... ) nếu số lượng coin chẵn)

PIE: Xem tệp đính kèm 2442007
lcm: bội chung nhỏ nhất ,GCD = ước chung lớn nhất
lcm(a,b) = a * b / gcd(a,b)

e tóm tắt lại cho bác
Thanks fence, để mai nghiên cứu tiếp
 
Trạng thái
Không mở để trả lời thêm.

Thống kê chủ đề

Ngày tạo
freedom.9,
Người trả lời cuối
freedom.9,
Trả lời
2.480
Lượt xem
130.288
Quay lại
Lên đầu trang