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 2020 - 2021.
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)
Nhập vào một số nguyên dương .
Yêu cầu: Tính giá trị các biểu thức:
Dữ liệu đảm bảo: .
Note
Tuy là rất lớn, và lưu trữ bằng kiểu số thức sẽ dẫn đến sai số nghiêm trọng, nhưng thực tế ta xét , do đó sai số chỉ ở những hàng thập phân phía sau. Vì vậy không ảnh hưởng đến kết quả.
Lưu ý: Lưu đáp án bằng kiểu số thực.
Độ phức tạp thời gian của cả bài toán là tổng độ phức tạp thời gian của từng yêu cầu.
Cho các số nguyên dương , , , , , .
Yêu cầu:
Dữ liệu đảm bảo: , và .
Nếu tính thông thường thì biểu thức sẽ tràn dữ liệu. Do đó cần xử lý số lớn để tính toán.
Ban đầu ta chuyển đổi giá trị thành một mảng số nguyên với là giá trị tại vị trí từ phải sang trái của số .
Ví dụ: thì .
Sau đó ta tính thông thường, nhân từng phân tử với từ với là độ dài hiện tại của mảng . Sau đó ta nhận lần lượt với tương tư như nhân với .
Cuối cùng, dời lên vị trí, tức là , để khi chia ta lưu được số thập phân sau dấu phẩy trong với .
Nhận xét về độ dài số
Độ dài tối đa của mảng bé hơn 100 vì độ dài giá trị của tích là sau đó ta thêm chữ số hàng thập phân thì tối đa độ dài đạt .
Độ phức tạp thời gian: .
Nếu chạy lần lượt từ đến để tính và nhân vào kết quả thì sẽ bị tràn dữ liệu.
Do đó, áp dụng tính chất chia lấy dư để xử lý tránh bị tràn số:
Độ phức tạp thời gian:
Độ phức tạp thời gian của cả bài toán là tổng độ phức tạp thời gian của từng yêu cầu.
Cho dãy số nguyên gồm phần tử .
Yêu cầu:
Dữ liệu đảm bảo: và .
Một số nguyên dương có dạng khi .
Do đó, ta duyệt qua mọi phần tử và in ra các phần tử thỏa mãn điều kiện trên.
Độ phức tạp thời gian: .
Duyệt qua mọi cặp số kề nhau và kiểm tra xem hai số có thỏa mãn hay không.
Độ phức tạp thời gian: .
Sử dụng thuật toán sàng nguyên tố để đánh dấu những giá trị nào là số nguyên tố.
Áp dụng quy hoạch động cơ bản:
Độ phức tạp thời gian: .
Độ phức tạp của sàng nguyên tố.
Nhận xét
Ta cần tìm tổng hai số trong dãy có giá trị gần bằng nhất.
Sắp xếp lại mảng theo thứ tự không giảm, sau đó áp dụng thuật toán hai con trỏ:
Nếu tăng lên thì giá trị của tổng sẽ tăng lên, ngược lại, nếu giảm xuống thì giá trị của tổng sẽ giảm xuống.
Chính vì tính chất đó, ta có thể di chuyển con trỏ tối ưu để tổng có thể gần bằng nhất và giá trị tuyệt đối của tổng là bé nhất.
Độ phức tạp thời gian: .
Độ phức tạp thời gian của cả bài toán là tổng độ phức tạp thời gian của từng yêu cầu.
Cho một dãy số nguyên dương và một dãy số nguyên dương .
Yêu cầu: Tìm số lượng phần tử trong mảng có giá trị bằng tổng của ít nhất dãy con trong mảng .
Dữ liệu đảm bảo: và .
Nhận xét
Bài toán yêu cầu kiểm tra có thể tạo được tổng bằng một tập con của không.
Áp dụng thuật toán quy hoạch động cái túi
Duyệt qua , nếu nghĩa là giá trị thỏa yêu cầu đề bài, ta tăng đáp án.
Độ phức tạp thời gian: .