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
dequevớ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