Hướng dẫn giải của Bai1. TRÒ CHƠI (5,0 điểm; Đề HSG9 tỉnh Tuyên Quang 2025-2026)


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Hướng dẫn giải

Gọi x là số đội 5 học sinh và y là số đội 3 học sinh. Khi đó ta có phương trình nghiệm nguyên:

5x + 3y = n,    x ≥ 0, y ≥ 0.

Tổng số đội là:

x + y.

Muốn số đội ít nhất thì cần chọn x (số đội 5 học sinh) lớn nhất có thể.

Từ phương trình:

5x + 3y = n

Lấy hai vế theo modulo 3:

5x ≡ n (mod 3).

Do:

5 ≡ 2 (mod 3),

suy ra:

2x ≡ n (mod 3).

Vì 2 là nghịch đảo của chính nó theo modulo 3 nên:

x ≡ 2n (mod 3).

Đặt:

q = ⌊n / 5⌋.

Ta cần tìm giá trị lớn nhất x ≤ q và thỏa mãn:

x ≡ 2n (mod 3).

Đặt:

r = (2 * (n % 3)) % 3;
d = (q % 3 - r + 3) % 3;
x = q - d;

Nếu x < 0 thì không tồn tại cách chia đội, in -1.

Ngược lại:

y = (n - 5x) / 3.

Đáp án là:

x + y.

Độ phức tạp:

  • Thời gian: O(1) cho mỗi test.
  • Bộ nhớ: O(1).

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.