Lời giải Contest ôn thi HSG 9 và 10, số 6, 2025

Link contest: https://lqdoj.edu.vn/contest/25thithu6

SPOILER ALERT: Nhấn vào để hiện lời giải

Bài 1:

  • Cách 1: swap(a,b) để \(a\le b\), sau đó while (a*x < b) { a++; b++; }
  • Cách 2: Công thức: xét hiệu \(\frac{|a-b|}{x-1}\).
  • Chú ý các trường hợp đặc biệt: \(x = 0, x = 1\), kết quả = 0

Bài 2:
Số đầu chính là tiền tố có độ dài \(\le 6\) của xâu \(S\)

Bài 3:

  • Gấp đôi mảng \(a\), sau đó kết hợp deque với prefix-sum
  • Do có \(a_i < 0\) nên không dùng tham lam được.
  • Subtask: chạy 2 for như sau:
    C++
    for (int i = 1; i <= n; i++) { // i : vị trí bắt đầu
        sum = 0;
        for (int j = 1; j <= n; j++) { // j : độ dài đoạn con
           int p = (i+j-1) % n; 
           if (p == 0) p = n;
           sum += a[p];
           if (l <= j && j <= r) ket_qua = max(ket_qua, sum);
        }
    }
    

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.