H ướ ng d n gi i – Tin 10 ẫ ả
Bài 1 – SEQSQR
D a vào công th c truy h i c a , chúng ta có th ch ng minh đự ứ ồ ủ ể ứ ược dãy có chu trình t i đa là ố
G i đ dài chu trình là , t ng các ph n t thu c chu trình đó là Đ t ọ ộ ổ ầ ử ộ ặ
K t qu là , v i là t ng c a s đ u tiên trong chu trình.ế ả ớ ổ ủ ố ầ
Đ ph c t p: ộ ứ ạ
Bài 2 – MSARR
G i ý: hãy th “l n ngợ ử ộ ược” l i bài toán: thay vì ta xóa đi t ng s m t trên b ng, ta có ô tr ng, ta ạ ừ ố ộ ả ố
đi n t ng ch s m t, và sau khi ta đi n m i ch s , hãy tìm dãy liên ti p có t ng l n nh t.ề ừ ữ ố ộ ề ỗ ữ ố ế ổ ớ ấ
B ng cách này, hãy th c i ti n bài toán t ằ ử ả ế ừ
Ta dùng kỹ thu t Disjoint Set-Union đ c i ti n bài toán này ậ ể ả ế
M i v trí là m t đ nh, và các c nh sẽ n i hai s c nh nhau Khi ta thêm m t s vào m t v trí, ta sẽ ỗ ị ộ ỉ ạ ố ố ạ ộ ố ộ ị
đ ng th i thêm c nh n i nó v i v trí bên trái, và v trí bên ph i, r i c ng t ng c a 3 thành ồ ờ ạ ố ớ ị ở ị ở ả ồ ộ ổ ủ
ph n liên thông v a ghép vào và t o thành m t thành ph n liên thông m i Ta sẽ c n duy trì bi n ầ ừ ạ ộ ầ ớ ầ ế max đ ki m soát xem thành ph n liên thông nào đang có kích thể ể ầ ướ ớc l n nh t.ấ
Đ ph c t p: ộ ứ ạ
Bài 3 – MINMUL
Ta sẽ d ng m t đ th , m i đ nh ng v i tr ng thái – nghĩa là t ng các ch s là và ph n d khi ự ộ ồ ị ỗ ỉ ứ ớ ạ ổ ữ ố ầ ư chia cho là
Sau đó, tìm “đường đi ng n nh t”, tính t tr ng thái , đ n tr ng thái ắ ấ ừ ạ ế ạ
T đ nh b t kỳ, v i m i là s nguyên t đ n , ta có th đ n đừ ỉ ấ ớ ọ ố ừ ế ể ế ược các đ nh Ta sẽ c n quan tâm ỉ ầ xem đ nh này đã đỉ ược đ a vào trong hàng đ i BFS ch a đ quy t đ nh xem có đ a vào hay không, ư ợ ư ể ế ị ư
và c n quan tâm các th t đ a vào trong hàng đ i Sau khi đ n đầ ứ ự ư ợ ế ược đ nh cu i cùng, ta có th ỉ ố ể dùng m ng truy v t v đ nh đ xem s c n tìm là bao nhiêu.ả ế ề ỉ ể ố ầ
Đ ph c t p: ộ ứ ạ
1