You are on page 1of 1

SỞ GD&ĐT NINH BÌNH HƯỚNG DẪN CHẤM

ĐỀ THI CHỌN HỌC SINH GIỎI THPT CẤP TỈNH


ĐỀ THI CHÍNH THỨC NĂM HỌC 2019 2020
MÔN: TIN HỌC
Ngày thi: 12/9/2019

TỔNG QUAN BÀI THI NGÀY THỨ HAI

Tên bài File chương trình File dữ liệu vào File kết quả
Câu
Cây keo TREE.* TREE.INP TREE.OUT
1
Câu
Nhảy vòng JUMP.* JUMP.INP JUMP.OUT
2
Câu
Trải nghiệm TIME.* TIME.INP TIME.OUT
3

Phần mở rộng của File chương trình là PAS hoặc CPP tùy theo ngôn ngữ lập trình sử dụng
là Pascal hoặc C++

Câu 1. Cây keo (6,0 điểm)


Thuật toán:
Sub 1: Nhân đôi dãy, tính tổng tiền tố, tìm đoạn tổng liên tiếp lớn nhất
Sub 2: - cải tiến cách tính trên dãy ban đầu bằng cách thêm các biến tính tổng, tổng lớn
nhất/nhỏ nhất từ đầu đến vị trí i, giảm độ phức tạp xuống O(n).
Câu 2. Nhảy vòng (7,0 điểm)
Sắp xếp lại các số tăng đần. Gọi F[i] là số vòng nhảy qua nhiều nhất kết thúc ở vòng tròn i,
khi đó ta cần tìm 2 vị trí j,k sao cho a[i]=a[j] + a[k].
F[i] = max(F[i],max(F[j],F[k])+1) độ phức tạp O(n3)
Do dãy đã sắp xếp ta tìm vị trí k bằng tìm kiếm nhị phân, độ phức tạp giảm xuống
O(n2*logn).

Câu 3. Mua hoa (7,0 điểm)


Thuật toán:
B1: Sắp xếp các cạnh theo độ ngập sâu tăng dần, thêm dần các cạnh vào đồ thị và kiểm tra.
Khi thêm cạnh có độ sâu là D và kiểm tra có đường đi từ X đến Y thì D chính là giá trị cần
tìm (tiếp tục thêm hết các cạnh có độ sâu D vào đồ thị và dừng B1)
B2: Từ đỉnh X sử dụng thuật toán Dijkstra tìm đường đi ngắn nhất đến các điểm còn lại, Kết
quả thứ 2 của bài toán chính là khoảng cách từ X đến Y.

-----Hết----

You might also like