Đề + đáp án olympic 16 tin 10 – Chi tiết

Đề + đá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="">

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

 

doc 2 trang Người đăng hanzo10 Lượt xem 1599Lượt tải 1 Download
Bạn đang xem tài liệu "Đề + đáp án olympic 16 tin 10 – Chi tiết", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐỀ + ĐÁP ÁN OLYMPIC 16 TIN 10 – CHI TIẾT
ĐỀ
Bài 1./ Cho một số N (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 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 ( [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:  

Tài liệu đính kèm:

  • docDe Dap an chi tiet Olympic 16 Tin 10.doc