Thông tin
Câu chuyện 1:
Đối với tôi, quá trình học môn tin như khi tôi bắt đầu có tình cảm với cô gái ấy. Dù trong nhận thức, mình đã biết trước được rằng cô gái ấy không hợp với mình, sẽ không yêu mình, càng không thể "miễn cưỡng" chấp nhận đến mới mình. Xong, do tình yêu đã làm lu mờ đi con mắt tinh tường, do tương tư đã làm phai mờ đi lí trí, mình vẫn cố gắng ôm lấy cái "tham vọng" gọi là "làm tiều phu" cưa đổ cô gái ấy. Mình càng lấn tới, càng cố gắng tỏ ra sự quan tâm, càng tán tỉnh, càng tốn calo để cố gắng chinh phục cái tham vọng ấy thì cô ấy lại càng giẫy giụa, càng cố gắng đẩy mình ra xa, càng cố gắng né tránh mình 🙁 Thật buồn, chỉ cho đến khi đã hết kiên nhẫn, đã hết sức chịu đựng khi phải nhìn thấy sự lấn tới của mình, cô gái ấy đã dành cho tôi một cú tát, cú tát ấy đã làm cho tôi tỉnh ngộ, làm cho mình suy nghĩ lại về hành động của mình, làm cho mình đau đớn, rồi tôi đã phải cay đắng thừa nhận và rút ra bài học kinh nghiệm xương máu cho cuộc đời của mình: "Gió tầng nào gặp mây tầng đó, hãy tìm kiếm một tình yêu hay một sự nghiệp THẬT LÀ PHÙ HỢP VỚI BẢN THÂN".
Nếu như đúng thật sự rằng, trong cuộc đời của tôi đã xuất hiện cô gái ấy, cộng với sự đau đớn, bất lực của mình khi học tin, khi phải đối mặt với ngôn ngữ lập trình, có lẽ 2 điều đó đã đủ tạo thành một combo để đưa tôi ra cây cầu cũ kĩ đó, bỏ lại tài sản của mình đơn giản chỉ là đôi dép, chấp nhận một cuộc đời SỐNG Ở ĐÁY SÔNG. :(((
Câu chuyện 2: Câu chuyện: "Minnhutei và nỗi đau Fenwick Tree"
Ngày xưa, minnhutei từng rất yêu nnqocie. Mỗi ngày, minnhutei đều viết lại cảm xúc vào một cuốn sổ gọi là buon[] — sổ ghi lại nỗi buồn. Ví dụ:
Ngày: 1 2 3 4 5 6
Nỗi buồn: 1 0 3 2 1
Minnhutei tự hỏi: "Từ hôm biết nnqocie, đến hôm nay, mình đã buồn bao nhiêu lần?"
→ Chính là tổng buon[1] + buon[2] + ... + buon[i]
→ Và lúc đó, Fenwick Tree (BIT) xuất hiện...
Fenwick Tree nói: “Minnhutei à, anh là cây BIT. Anh không thể làm em quên nnqocie. Nhưng anh sẽ giúp em nhớ lại… một cách gọn gàng và nhanh chóng.”
Fenwick Tree là gì?
Là một cách lưu trữ nỗi buồn (tổng đoạn) sao cho:
Cập nhật nhanh: mỗi lần buồn hơn nữa
Hỏi tổng nhanh: tổng nỗi buồn từ đầu đến một ngày nào đó
Cách hoạt động (giản dị như tình yêu đầu):
struct Fenwick {
int n;
vector<int> bit;
Fenwick(int _n) : n(_n), bit(n + 1, 0) {}
void update(int i, int delta) {
while (i <= n) {
bit[i] += delta;
i += i & -i; // bước đến ngày sau có liên quan
}
}
int query(int i) {
int res = 0;
while (i > 0) {
res += bit[i];
i -= i & -i; // lần ngược về ngày trước từng đau
}
return res;
}
int range(int l, int r) {
return query(r) - query(l - 1);
}
};
Fenwick fw(10); // minnhutei có nhật ký 10 ngày
fw.update(3, 5); // ngày thứ 3, nnqocie không rep → buồn thêm 5
fw.update(5, 2); // ngày thứ 5, thấy ảnh cũ → buồn thêm 2
cout << fw.query(5); // tổng nỗi buồn từ ngày 1 đến 5 là bao nhiêu?
Fenwick Tree không làm minnhutei hết buồn. Nhưng giúp minnhutei quản lý nỗi đau có logic, có thứ tự, và có kiểm soát. Giống như chuyện tình với nnqocie:
"Không thể quên, nhưng học cách nhớ theo từng phần nhỏ – từng đoạn, từng ngày."
[𝓝𝓠𝓝] 𝓜𝓲𝓷𝓝𝓱𝓾𝓽𝓮𝓲