Hướng dẫn giải đề thi UIT Code Contest đợt 9

Bài 1: Làm bánh

Đề bài yêu cầu cần ít nhất bao nhiêu phút để rán hết n cái bánh nên ta chỉ tập trung vào bước 2 rán bánh.

Rán tối đa k mặt bánh 1 lần, mỗi lần 5 phút, mỗi bánh có 2 mặt bánh, vậy số phút tối thiểu cần rán xong n bánh, ta có được công thức như sau:

n = 0 Min_time = 0

n <= k Min_time = 10 vì rán lần 1 được k bánh mất 5 phút sau đó lật n bánh đó lại rán mặt sau được 5 phút nữa

TQ: Min_time = [n*2/k] *5

Đó cũng chính là kết quả bài toán cần tìm.

Code Mẫu C++

Bài 2: Dấu ngoặc

Bài này có thể áp dụng nhiều kiểu giải, đa số sẽ dùng thuật toán stack – ngăn xếp.

Lần lượt đưa vào ngăn xếp dấu ({[, khi gặp dấu ) thì xóa dấu (, dấu } xóa dấu {, dấu ] xóa dấu [

Thuật toán dừng khi gặp ],},) mà tìm trong stack không thấy [,{,( trả về kết quả false, nếu duyệt hết mà stack = 0 thì trả về true.

Code Mẫu C++

Bài 3: Vương quốc hạnh phúc

Ý tưởng bài này là sử dụng thuật toán DFS hoặc BFS đơn giản cũng có thể sử dụng vết dầu loang để tìm được miền liên thông K. Kết quả sẽ là K – 1.

Code Mẫu Pascal

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *