Đề + Đáp án chi tiết Olympic 16 Tin 10

2 370 0
Đề + Đáp án chi tiết Olympic 16 Tin 10

Đang tải... (xem toàn văn)

Thông tin tài liệu

ĐỀ + ĐÁP ÁN OLYMPIC 16 TIN 10 – CHI TIẾT ĐỀ Bài 1./ Cho một số N (<=100) và dãy số từ a[1]->a[n] (<=10^9). Hãy in ra một cách nối các số đó lại với nhau sau cho đạt được số lớn nhất. INPUT: - Dòng đầu là số N. - N dòng tiếp là dãy A. OUTPUT: Một dòng duy nhất là số lớn nhất nhận được khi nối các số trong dãy A. VD: INPUT: 5 12 34 567 890 OUTPUT: 8905673412 Bài 2./ Một người muốn đi tham quan một số các thành phố rồi quay lại thành phố xuất phát, sao cho đường đi là ngắn nhất. Có N thành phố (<=1000). Thành phố xuất phát S đi qua K thành phố (1<=S,K<=N), K thành phố cho trước, đi tuần tự. INPUT: - Số N. - Số S và K (cách nhau ít nhất một khoảng trắng). - K thành phố trên dòng thứ 3. (cách nhau ít nhất một khoảng trắng). - Cặp các thành phố mang ý nghĩa là có đường đi 2 chiều từ thành phố này qua thành phố kia. OUTPUT: Một dòng duy nhất in số các thành phố ít nhất phải qua < Bài này Nguyên quên mất VD rồi, thông cảm> Bài 3./ Một con robot đi từ tọa độ đầu bên trái cùng đến tọa độ dưới bên phải cùng trong một ma trận NxN (<=50). Ma trận chỉ chứa giá trị 0 và 1. Hãy chỉ ra số nhị phân nhỏ nhất mà robot tạo ra trên đường đi từ tọa độ [1;1] -> [n;n]. INPUT: - Số N. - N dòng, N cột tiếp là ma trận. OUTPUT: Số nhị phân nhỏ nhất tìm được. ĐÁP ÁN Bài 1. Connect Thuật toán: - Gọi a là dãy gồm n chuỗi số đã cho - Sắp xếp theo tiêu chuẩn nếu ai + aj < aj + ai thì hoán vị ai và aj - Xuất a ta được kết quả Các giá trị của n: 3 – 10 – 20 – 47 – 58 – 73 – 100 Bài 2. Tour Thuật toán: - Goi d1,d2,…,dk là danh sách các đỉnh phải đi qua rồi trở về S - Gọi NN(a,b) là đường đi ít (ngắn) nhất từ a tới b (duyệt BFS hay Dijkstra) - Kết quả = NN(S,d1) + NN(d1,d2) + … + NN(dk,S) Các giá trị: N – K – M – Kết quả Test 1. 8 – 3 – 11 – 7 Test 2. 100 – 9 – 100 – 710 Test 3. 255 – 7 – 254 – 14 Test 4. 500 – 9 – 124750 – 10 Test 5. 1000 – 4 – 999 – 3992 Test 6. 1000 – 10 – 999 – 1016 Bài 3. Robot Thuật toán: Quy hoạch động như sau - Gọi S[i, j] là chuỗi nhị phân nhỏ nhất có được khi đi từ ô (1, 1) đến (i, j) - S[1, 1] = a[1, 1] - Điền dòng 1 và cột 1 của S For i:= 2 to n do For j:=2 to n do s[i, j]:=min(s[i – 1, j],s[i, j – 1]+a[i, j]; - Kết quả = S[n, n] Các giá trị của n: 6 – 10 – 15 – 25 – 31 – 40 – 50 Link down test file: http://www.mediafire.com/?zuggj2ni13m . ĐỀ + ĐÁP ÁN OLYMPIC 16 TIN 10 – CHI TIẾT ĐỀ Bài 1./ Cho một số N (< =100 ) và dãy số từ a[1]->a[n] (< =10^ 9). Hãy in ra một cách nối các số đó. NN(S,d1) + NN(d1,d2) + … + NN(dk,S) Các giá trị: N – K – M – Kết quả Test 1. 8 – 3 – 11 – 7 Test 2. 100 – 9 – 100 – 710 Test 3. 255 – 7 – 254 – 14 Test 4. 500 – 9 – 124750 – 10 Test 5. 100 0 –. trận. OUTPUT: Số nhị phân nhỏ nhất tìm được. ĐÁP ÁN Bài 1. Connect Thuật toán: - Gọi a là dãy gồm n chuỗi số đã cho - Sắp xếp theo tiêu chuẩn nếu ai + aj < aj + ai thì hoán vị ai và aj - Xuất a ta được

Ngày đăng: 05/07/2014, 01:00

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan