Một số dạng Sweepline🧹
Khi nào nghĩ đến Sweeping Line đầu tiên? Dữ liệu đầu vào là các “Khoảng không gian” hoặc “Tọa độ”: Đề bài cho các đoạn thẳng $[L, R]$, các hình chữ nhật $[x_1, y_1, x_2, y_2]$, các hình tròn, h...
Khi nào nghĩ đến Sweeping Line đầu tiên? Dữ liệu đầu vào là các “Khoảng không gian” hoặc “Tọa độ”: Đề bài cho các đoạn thẳng $[L, R]$, các hình chữ nhật $[x_1, y_1, x_2, y_2]$, các hình tròn, h...
I. Tổng quan Trong lập trình thi đấu, đôi khi ta gặp các bài toán tìm số hạng thứ $N$ của dãy số hoặc đếm số cách thực hiện một công việc với $N$ bước. Nếu $N \le 10^6$: Dùng dp thông thường v...
Đồ thị đầy đủ (Complete graph) 1. Định nghĩa Đồ thị đầy đủ (ký hiệu là $K_n$ với $n$ là số đỉnh) là một đồ thị vô hướng đơn giản mà giữa bất kỳ hai đỉnh phân biệt nào cũng có đúng một cạnh nối. N...
Phương pháp phân nhóm theo số chữ số Dãy số: $1, 2, 3, \dots, 9, 10, 11, \dots, 99, 100, \dots$ Nhóm 1: Có 9 số có 1 chữ số ($1 \to 9$) $\rightarrow$ $9 \times 1 = 9$ chữ số. Nhóm 2: Có 90 số...
1 index nhé🐧 ll dp[MAX_DIGIT][2][2][...] ll f(int idx, bool tight, bool lz, int ..., const string &s, int n) { if(idx == n + 1) { return ...; // Thay đổi điều kiện dừng tùy bài t...
Easy segment tree (Iterative) (1-based) struct easy_segment_tree{ int n; vector<ll> st; easy_segment_tree() {} easy_segment_tree(int n) : n(n), st(n << 1 | 1) {} vo...
Template void dnc(int l, int r) { if (l >= r) return; int mid = (l + r) >> 1; dnc(l, mid); dnc(mid + 1, r); // combine 2 nửa [l..mid] và [mid+1..r] } Một số bài toá...
thông tin trong bài blog này có thể chưa hoàn thiện và sẽ cập nhật ở tương lai Một số tính chất hữu ích trong CP Tính chất 1 \(\begin{aligned} &u = \gcd(a, X) \quad &\Rightarrow\quad u \m...
thông tin trong bài blog này có thể chưa hoàn thiện và sẽ cập nhật ở tương lai