Phân tích và giải các bài toán CF1000
A. Đếm số lượng "khoảng tốt" tối tiểu
Một khoảng [x, x+1] luôn là "khoảng tốt" vì hai số liên tiếp luôn nguyên tố cùng nhau. Hơn nữa, đây cũng là khoảng tốt tối tiểu, do các khoảng đơn phần tử như [x,x] không thể là khoảng tốt (vì gcd(x,x) = x ≠ 1 nếu x > 1).
Với mọi khoảng có độ dài lớn hơn 2, nó sẽ chứa ít nhất một khoảng con độ dài 2 — do đó ...
Đăng vào ngày 27 tháng 6 lúc 06:29
Cơ sở Lý thuyết Đồ thị
n lần Floyd
Thuật toán Floyd tiêu chuẩn có thứ tự duyệt như sau:
for (k) for (i) for (j)
kq[i][j] = min(kq[i][k] + kq[k][j])
Floyd tiêu chuẩn cho ta đường đi ngắn nhất không giới hạn số cạnh.
Nhưng nếu viết thành:
for (i) for (j) for (k)
ketqua[i][j] = min(kq[i][k] + a[k][j])
(trong đó \(ketqua\) là ma trận khởi tạo toàn giá trị vô cùng, ...
Đăng vào ngày 18 tháng 6 lúc 20:01
Tổng Quan Về Đồ Thị Hai Phía Và Kỹ Thuật Luồng Cực Đại
Lý Thuyết Phủ Đỉnh Và Ghép Cặp Trong Đồ Thị Hai Phía
Mối quan hệ giữa phủ đỉnh cực tiểu và ghép cặp cực đại là một nền tảng quan trọng. Theo định lý Konig, trong đồ thị hai phía, số lượng đỉnh cần để phủ tất cả các cạnh bằng đúng số lượng cạnh lớn nhất có thể chọn sao cho không có hai cạnh nào chung đỉnh.
Để tìm tập hợp đỉnh cụ thể cho bài toán ...
Đăng vào ngày 15 tháng 6 lúc 05:07
Các bài toán NOI 2026 - Ghi chú giải bài
A. [QOJ5099] Đường hành hương (1)
Giải bài toán bằng cách sử dụng định lý tổ hợp và thuật toán Ex-Lucas để tính toán hiệu quả. Công thức tổ hợp được biểu diễn dưới dạng tổng các tổ hợp chập i của 2n phần tử, với điều kiện i > n. Độ phức tạp thời gian là O(ω(p)log p), trong đó ω(p) là số lượng số nguyên tố nhỏ hơn p.
#include<bits/stdc++.h&g ...
Đăng vào ngày 11 tháng 6 lúc 05:00
Giải pháp cho các bài toán lập trình từ ABC369
Bài A: Đếm số phần tử có thể chèn giữa hai số
Nếu hai số A và B khác nhau, kiểm tra xem hiệu của chúng có chẵn hay không. Nếu chẵn, có thể chèn một số ở giữa → tổng cộng 3 số. Nếu lẻ, chỉ có thể giữ nguyên hai đầu mút → 2 số. Trường hợp A == B, chỉ có duy nhất một giá trị.
#include <bits/stdc++.h>
using namespace std;
int main() {
in ...
Đăng vào ngày 10 tháng 6 lúc 04:51
Giải thuật và Cài đặt Các Bài Toán Từ Cuộc Thi Lập Trình AtCoder ABC299
Bài A – Hộp Bảo Bối
Xuất phát từ một chuỗi ký tự gồm ba ký hiệu đặc biệt: '|' (hai dấu gạch đứng biểu thị hai cạnh của hộp) và '*' (một ngôi sao đại diện cho vật phẩm). Nhiệm vụ là xác định xem ngôi sao nằm bên trong hay bên ngoài hộp — tức là có nằm giữa hai dấu gạch hay không.
Cách tiếp cận đơn giản: duyệt chuỗi để ghi nhận vị trí đầu tiên và ...
Đăng vào ngày 4 tháng 6 lúc 06:28
Ghi chú giải bài tập lập trình (Bản 14)
Liên kết cuộc thi
\(\text{By DaiRuiChen007}\)
A. [P11648] 2236 A.D. (4.5)
Liên kết bài toán
Ta thực hiện phân tách từng bit của \(k\), duy trì tập hợp \(S\) động. Mỗi thao tác cập nhật hoặc truy vấn \(w_x=\sum_{y\in S}a_{x\lor y}\).
Sử dụng DSU để quản lý, mỗi nút chỉ có \(k\) tổ tiên thay đổi trọng số đường đi. Với \(\log n\) cạnh nhẹ, số lần ...
Đăng vào ngày 1 tháng 6 lúc 14:48
Cấu trúc và Ứng dụng của Thành Phần Liên Thông Mạnh Trong Đồ Thị
Khái Niệm Cơ Bản Về Tính Liên Thông
Tính liên thông trong lý thuyết đồ thị là nền tảng để phân tích cấu trúc mạng lưới. Chúng ta chia ra hai trường hợp chính:
Đồ Thị Vô Hướng
Liên thông: Tồn tại đường đi giữa mọi cặp đỉnh bất kỳ.
Liên thông điểm (Point-Biconnected): Đồ thị vẫn liên thông sau khi xóa bất kỳ một đỉnh nào và các cạnh kề. ...
Đăng vào ngày 24 tháng 5 lúc 03:09