# 1. Tóm tắt đề bài Có $n$ trận đấu, mỗi vòng đấu diễn ra như sau: - Nếu $n$ chẵn thì sẽ có $\frac{n}{2}$ trận đấu diễn ra, mỗi đội sẽ ở trong chính xác một cặp đấu, và sẽ có $\frac{n}{2}$ đội đi tiếp. - Nếu $n$ lẻ thì một đội ngẫu nhiên sẽ được chọn để đi tiếp, $n-1$ đội còn lại tạo thành $\frac{n-1}{2}$ trận đấu và chọn ra $\frac{n-1}{2}$ đội đi tiếp. Đếm số trận đấu được thực hiện để tìm ra nhà vô địch (tức là chỉ còn một đội duy nhất)/ ##### Giới hạn - $1 \le n \le 200$ # 2. Lời giải ### Cách $1$: Ta có thể tiếp cận theo hướng "đề bảo gì làm đấy", do mỗi lần $n$ giảm tối đa hai lần, vậy nên ta có thể dùng một vòng lặp $while$ để thực hiện theo yêu cầu đề bài, số phép tính cần thực hiện lúc này rơi vào $log_2(n)$. ### Cách $2$: Ta có thể suy luận đơn giản như sau: - Để chỉ còn một đội duy nhất, đồng nghĩa với việc có $n-1$ đội bị loại. - Để có $n-1$ đội bị loại, ta cần có $n-1$ trận đấu. Vậy đáp án của bài toán là $n-1$. ### Độ phức tạp thuật toán Thời gian: $O(1)$ ### Code ```cpp= class Solution { public: int numberOfMatches(int n) { return n-1; } }; ```