Thông tin
Sau đây là lời giải của Kỳ thi Tuyển sinh 10 trường THPT chuyên Lê Quý Đôn tỉnh Bà Rịa - Vũng Tàu năm học 2022 - 2023.
Bạn đọc có thể nộp và chấm bài (test tự sinh) TẠI ĐÂY.
Chuẩn bị bởi team Logica, thuộc khuôn khổ dự án The Algitect (ALGI Project)
Cho ba số nguyên .
Yêu cầu: Đếm số lượng số chia hết cho trong đoạn .
Dữ liệu đảm bảo: và .
Ràng buộc:
Duyệt vòng lặp từ đến rồi kiểm tra có chia hết cho không và tăng kết quả.
Độ phức tạp thời gian: .
Tip
Các số chia hết cho trong khoảng từ đến có dạng . Trong đó là số lớn nhất sao cho hay .
Mà là một số nguyên nên .
Như vậy, ta có thể tính nhanh số lượng số chia hết cho trong khoảng từ đến bằng cách lấy kết quả là: .
Vậy để giải quyết bài toán trên ta sẽ lấy kết quả:
Là các số chia hết cho từ đến và loại đi các số chia hết cho từ đến .
Độ phức tạp thời gian: .
Cho hai số và (), tìm số không âm nhỏ nhất để .
Yêu cầu: In ra số không âm nhỏ nhất tìm được
Dữ liệu đảm bảo: và .
Subtasks:
Chạy vòng lặp từ giá trị đến khi tìm được kết quả thỏa mãn điều kiện đề bài.
Độ phức tạp thời gian: .
Đối với giới hạn lớn, việc dùng vòng lặp để tìm là bất khả thi.
Gọi:
Khi đó: ().
Đề ra , từ đó suy ra:
Vì tính chất (), ta chỉ cần đảm bảo một trong hai điều kiện trên. Bài toán trở thành tìm số nhỏ nhất sao cho: .
Ta có: .
Mà
Độ phức tạp thời gian: .
Cho mảng gồm phần tử và một số nguyên .
Yêu cầu: Hãy đếm số cặp sao cho .
Dữ liệu đảm bảo: , và .
Ràng buộc:
Ta duyệt qua từng cặp trong mảng , kiểm tra điều kiện rồi tăng biến đếm.
Độ phức tạp thời gian: .
Nhận xét
Vì các phần từ trong mảng nhỏ hơn nên nếu thì đáp án là 0.
Vậy ở subtask này ta chỉ cần giải quyết bài toán với
Ta cố định từng phần tử , lúc này ta cần đếm số lượng phần tử sao cho:
Ta có thể xử lý việc này bằng mảng đếm.
Gọi là số lượng phần tử đã xuất hiện (tức là ở vị trí bé hơn ). Vậy với mỗi phần tử ta sẽ cộng vào kết quả là .
Độ phức tạp thời gian: .
Vì sử dụng mảng đếm nên nếu phần tử lớn sẽ dẫn đến tràn mảng. Lúc này ta thay thể mảng đếm bằng cấu trúc dữ liệu map
.
Độ phức tạp: .
Cho mảng gồm phần tử hãy tìm dãy con dài nhất của sao cho các phần tử liền kề trong dãy con thỏa mãn các điều kiện sau:
Dữ liệu đảm bảo: và .
Ràng buộc:
Ta sử dụng thuật toán quay lui sinh ra tất cả các dãy con của mảng , kiểm tra điều kiện rồi lấy đáp án.
Độ phức tạp thời gian: .
Sử dụng thuật toán quy hoạch động.
Ta duyệt các cặp .
Độ phức tạp: .
Kế thừa tư tưởng của subtask 2.
Tận dụng điều kiện , ta chỉ duyệt từ đến .
Độ phức tạp: .