Thông tin
Sau đây là lời giải của Kỳ thi Tin học trẻ bảng B tỉnh Bà Rịa - Vũng Tàu năm học 2015 - 2016.
Bạn đọc có thể nộp và chấm bài (test tự sinh) TẠI ĐÂY.
Chuẩn bị bởi team Logica, thuộc khuôn khổ dự án The Algitect (ALGI Project)
Cho xâu "HOITHITINHOCTRETINHBARIAVUNGTAULANTHUXX", với kí tự đầu tô màu xanh, kí tự 2 tô màu đỏ, kí tự 3 tô màu tím, kí tự 4 tô màu vàng, kí tự 5 tô màu xanh, …
Ta nối liên tiếp các xâu vô hạn lần đã được tô màu tạo thành xâu
Yêu cầu: Cho là vị trí của kí tự nằm ở vị trí trong xâu , tìm kí tự thứ và màu của kí tự đó, giả sử thứ tự các kí tự bắt đầu từ
Dữ liệu đảm bảo:
Nhận xét
Xâu có tối đa 39 kí tự và xâu dễ thấy xâu có tính chu kì
Ta biết rằng nếu 1 xâu có tính chu kì, kí tự sẽ giống kí tự
Tương tự với màu của nó, tuy nhiên tại điểm giao giữa 2 chu kì, tức tại vị trí của kí tự cuối cùng ở chu kì và kí tự đầu của chu kì , ta thấy rằng màu của chúng sẽ phải là T và X chứ không phải 2 màu liên tiếp nhau, do đó công thức sẽ là ( ) để lấy được vị trí trong xâu , từ đó tìm màu của kí tự đó
Nếu ta khai báo trước xâu và xâu "", ta có thể sử dụng các công thức ở trên để lấy kí tự ở vị trí đó.
Độ phức tạp thời gian: .
Cho bảng và bảng gồm x phần tử chỉ gồm các số và
Cần tác động một số lần để bảng trở thành bảng . Mỗi lần tác động ô thì ô sẽ bị lật giá trị ( thành hoặc thành ) các ô xung quanh nó là ô , , , dù không được tác động cũng sẽ bị lật giá trị
Yêu cầu: Kiểm tra xem có tồn tại cách tác động một số ô để bảng trở thành bảng hay không. Nếu có, in ra số lần tác động tối thiểu, ngược lại in ra
Dữ liệu đảm bảo:
Nhận xét
Nếu toàn bộ hàng đến hàng đã được lật giống với bảng , để hàng giống trong bảng và , ta có thể ưu tiên sử dụng hàng để lật hàng
Đối với hàng , do không có hàng để lật hàng , ta không còn cách để lật hàng nếu hàng này chưa giống với hàng trong bảng . Do đó, với mỗi cách lật thỏa mãn, ta chỉ cần kiểm tra xem hàng đã được lật đúng với trong bảng hay chưa
Đối với hàng , ngoài việc được lật bằng hàng , ta cũng có thể lật chính nó bằng cách tác động vào các ô trong hàng , có cách để hàng tự lật
Sử dụng thuật toán quay lui để tự lật hàng , và từ hàng đến hàng , ta sẽ thao tác giống như ở trên
Độ phức tạp thời gian: .