SỞ GIÁO DỤC VÀ ĐÀO TẠO | KỲ THI CHỌN HỌC SINH GIỎI LỚP 12 THPT |
MÔN THI: TIN HỌC
Thời gian làm bài: 180 phút (không kể thời gian giao đề)
--------------------------------------------------------------------------------
Bài 1 (10 điểm): Sắp xếp chèn trực tiếp:
Ý tưởng của thuật toán sắp xếp chèn trực tiếp có thể mô tả ngắn gọn như sau:
Cho dãy ban đầu a1, a2,... , an. Ta có thể xem như đã có đoạn gồm một phần tử a1 đã được sắp, sau đó thêm a2 vào đoạn a1 để có đoạn a1, a2 được sắp; tiếp tục thêm a3 vào đoạn a1, a2 để có đoạn a1, a2, a3 được sắp; tiếp tục cho đến khi thêm xong aN vào đoạn a1 a2 ...aN-1 sẽ có dãy a1a2.... aN được sắp.
* Yêu cầu:
1. Hãy cài đặt thuật toán trên bằng chương trình.
Dữ liệu vào: File BAI1.INP. Hàng đầu tiên là n - số phần tử của dãy (0 < n < 10.000). Các hàng kế tiếp là các số nguyên biểu diễn giá trị của các phần tử trong dãy. Mỗi số cách nhau 1 khảng trắng hoặc xuống dòng.
Dữ liệu ra: File BAI1.OUT; có cấu trúc tương tự File dữ liệu vào nhưng các phần tử đã được sắp xếp tăng dần bằng thuật toán sắp xếp chèn trực tiếp như mô tả trên.
Hiển thị trên màn hình thời gian trước và sau khi sắp xếp xong dãy đã cho.
2. Cải tiến thuật toán:
Anh (Chị) hãy tìm cách cải tiến thuật toán trên sao cho hiệu quả hơn.
Yêu cầu:
Công đoạn xử lý nào của chương trình có thể cải tiến để thuật toán hiệu quả hơn thì viết thành 02 chương trình con, một chương trình con lúc chưa cải tiến, một chương trình con sau khi cải tiến. Cần ghi chú ngắn gọn ý tưởng thuật toán cho chương trình con đã cải tiến.
Hãy thử chương trình con sau khi cải tiến và hiển thịthời gian trước và sau khi thực hiện xong quá trình sắp xếp.
File dữ liệu vào cho ở câu 1. Kết quả ghi trong File BAI1B.OUT, có cấu trúc tương tự BAI1.OUT.
Lưu ý: cải tiến thuật toán không phải là thay thuật toán sắp xếp chèn trực tiếp bằng một thuật toán sắp xếp khác.
Bài 2 (10 điểm): Chuỗi gần đúng.
Hai chuỗi gọi là gần đúng khi các ký tự của chuỗi gốc xuất hiện trong chuỗi kia theo đúng thứ tự như chuỗi gốc. Số kí tự sai khác được tính thành tỉ lệ phần trăm so với chuỗi có độ dài lớn hơn. Nếu tỉ lệ % sai khác không lớn hơn m% thì ta gọi đây là 2 chuỗi gần đúng.
* Yêu cầu: Viết chương trình tìm các chuỗi gần đúng so với chuỗi gốc.
Fie dữ liệu vào cho trong File BAI2.INP. Hàng đầu tiên là m (số nguyên giá trị từ 1 đến 50). Hàng kế tiếp là chuỗi gốc; các hàng còn lại là các chuỗi cần xác định có gần đúng với chuỗi gốc đã cho hay không. Chuỗi chỉ gồm các kí tự chuẩn trong bảng mã ASCII và không có khoảng trắng trong chuỗi; chiều dài chuỗi không quá 254 kí tự.
Kết quả ghi trong File dữ liệu ra BAI2.OUT; gồm chuỗi gốc và các chuỗi gần đúng với chuỗi gốc (không phân biệt chữ hoa/thường). Mỗi chuỗi được ghi trên 1 hàng.
Download tài liệu để xem thêm chi tiết