Đầu tiên là “không bao giờ bỏ cuộc”

Sử dụng hàm $assert$(Điều kiện) và vài cách để kiểm tra test đề wrong ans, TLE, runtime eror, Memory

assert(false);

Khi đề bài bắt tính gì đó từ $l→r$ ta có thể xem có thể tính từ $1 → l$ hoặc từ $1 → r$ hay không vì nhiều trường hợp tính từ một dễ hơn và kết quả sẽ lấy $ans(r) - ans(l-1)$

Problem: https://gspvh22.contest.codeforces.com/group/Lux9RR7xrm/contest/404495/problem/C

Dùng các cấu trúc dữ liệu map, set là tối kị thay vào đó có thể dùng những cách khác, dù là cùng độ phức tạp $O(logn)$ nhưng hằng số của map, set là rất lớn:

Thứ tự độ phức tạp $O(logn)$ từ nhỏ đến lớn:

BIT (fenwich tree)

Sort

Binary search

Segment tree

Map/set

Cũng tương tự như Map, set trong CTDL ở trên thì trong lập trình cũng sợ nhất là đụng tới số thực, vậy nên khi code chương trình có sài hàm pow(), sqrt() thì phải hết sức chú ý vì khi đụng vào số lớn 2 hàm này sẽ trả về sai số, và không biết fix bug ở đâu, cách sử lý những trường hợp này có trong phần số học

Đôi khi trong một điều kiện if có nhiều điều kiện với dấu && ta nên để điều kiện có độ phức tạp bé nhất ở đầu tiên vì trong chương trình C++ nó sẽ thực hiện lần lượt từng điều kiện và nếu điều kiện nào sai thì sẽ thoát

Đang update…