19

LCOJ Beginner Contest #3

posted on Oct. 26, 2023, 10:05 a.m.

Xin chào các bạn, blog này thông báo rằng LCOJ sẽ tiếp tục tổ chức LCOJ Beginner Contest #3.

LCOJ Beginner Contest #3 sẽ diễn ra vào 20h00 ngày 05/11/2023 với thời lượng kéo dài 2 giờ 30 phút.

Tổ chức kỳ thi
Thông tin kỳ thi
  • Sử dụng format ICPC.
  • Kỳ thi gồm 6 task làm trong thời gian 2 giờ 30 phút.

Đặc biệt: Kỳ thi lần này sẽ tính rate cho tất cả mọi người, bao gồm các bạn không làm bài nào vì vậy hãy cân nhắc trước khi tham gia contest.

UPD: Sau khi contest kết thúc các bạn hoàn toán có thể đóng góp editorial cho các bài tập trong contest bằng cách comment editorial của các bạn xuống dưới bài post này với tiêu đề "Editorial - Task ...". Nếu editorial của các bạn nhận được sự ủng hộ của mọi người, lời giải của các bạn sẽ được cân nhắc để được đưa làm lời giải chính thức cùng với lời giải đến từ LCOJ ! Rất mong được cùng các bạn đóng góp lời giải cho LCOJ!

UPD: Xin chúc mừng top 5 của kỳ thi:

Một contest có vẻ khó hơn khi mà số lượng các bạn làm được full AC đã ít hơn, có vẻ các thí sinh gặp rất nhiều khó khăn ở Task B và Task C, editorial sẽ có trong ngày mai hoặc nhiều ngày tới.


Comments

Please read the guidelines before commenting.



  • 2
    tri_88  commented on Nov. 10, 2023, 1:50 a.m. edit 3

    Editorial - Task F:

    Cách 1:

    Bài này yêu cầu bạn biến đổi số N thành 1 xâu nhị phân và đếm số lượng chữ số '0' trong xâu bit đó.

    Kết quả là 2 mũ số lượng chữ số '0' trong xâu bit N

    Code Mẫu (C++) Tại Đây

    Độ phức tạp: O((log(N)+bit(N).size())*test). Với bit(N).size() là độ dài của xâu nhị phân N

    Cách 2:

    Các bạn có thể chia N cho 2 và nếu N chia hết cho 2 thì tăng biến res lên 1.

    Lặp lại cho đến khi N=0 thì dừng.

    Kết quả là 2 mũ res.

    Code Mẫu (C++) Tại Đây

    Độ phức tạp: O(log(N)*test)

    Đây là bài post đầu tiên của mình nên có gì sai sót thì các bạn góp ý cho mình nhé!^_^


  • 1
    Toanldyl1  commented on Nov. 6, 2023, 2:57 a.m. edited

    Editorial - Task A:

    Bài này các bạn có thể sử dụng 2 con trỏ cho bài toán này:

    Đặt 2 biến i=0, j=0, nhập vào 1 xâu s.

    Sau đó tăng biến i nếu s[i] khác s[i+1]. Nếu s[i]=s[i+1] thì đặt j=i

    Sau đó duyệt s[i] cho đến khi s[i] khác s[i+1]

    Đặt biến res=max(res, i-j+1) Lặp lại cho đến khi i=độ đài xâu s và đặt res=max(res, i-j+1). Sau đó in ra res

    Code mẫu (C++): Code

    Độ phức tạp: O(|s|*test) (|s| là độ dài xâu s)

    (P/s: Đây là bài editorial đầu tiên của mình nên có gì sai sót thì các bạn chỉ ra và góp ý cho mình nhé! 😊😊😊


    • 2
      wronganswer  commented on Nov. 7, 2023, 4:44 a.m.

      luyencode.net rất cảm ơn sự đóng góp của bạn nha !!!