# Hue ICTC 22 ## Bài 3 ### Tóm tắt Số yêu thích = (+/-) Số chính phương Cho trước $k$. Tìm tất cả $A$ mà $A$ và $A+k$ đều là số yêu thích. ### Tiếp cận Xét $a,b$ dương thì số $k$ có thể rơi vào các TH sau: 1) $a^2 + k = b^2$ Tức $k = b^2 - a^2 = (b-a)(b+a)$ (với $a < b$) 2) $-a^2 + k = b^2$ Tức $k = b^2 + a^2$ 3) $-a^2 + k = -b^2$ Nên $k = a^2 - b^2$, nhận thấy giống trường hợp 1 Ngoài ra ta đã loại đi $a^2 +k = -b^2$ (vì chênh lệch $k > 0$ nên không thể từ số dương -> số âm) #### Ví dụ $7 = (b-a)(b+a) = 1 \times 7$ Giả ra được $b = 4, a = 3$. Một bộ nhưng cho ra hai đáp án: - $9 + 7 = 16$ - $-16 + 7 = -9$ ### Sol Chạy for tới căn. Kết quả lưu trong `vector` hoặc `set`. Sau đó loại ra phần tử trùng (nếu cần). ## Bài 4 Từ đề, rút ra được: "Cần đi tìm hai vị trí $i,j (i \neq j)$ để tổng $a_i + b_j$ là lớn nhất" Giới hạn bé: $l,r \le 9$ ### Trâu Được 40%, ngon ### Full Cần tìm $\max b$ tại mọi vị trí khác $i$ #### Hướng 1 Dùng `multiset` để thêm và xóa liên tục ![](https://i.imgur.com/M6OFnSe.png) #### Hướng 1.5 Xóa/ thêm bằng đếm phân phối ![](https://i.imgur.com/B1cut8R.png) #### Hướng 2 Áp dụng prefix-sum để tính min ![](https://i.imgur.com/xyqDnrV.png) ## Bài 5 Đặt $f(i)$ là số cách để đi được khoảng cách $i$. Khởi tạo $f(0) = 1$ và $f(x) = 0 \forall x < 0$ Công thức $f(i) = f(i-1) + f(i-2) + f(i-3)$