Giải bài toán ba lô 0-1 bằng quy hoạch động

Bài toán ba lô 0-1 là một bài toán tối ưu hóa tổ hợp kinh điển. Nó được phát biểu như sau: cho một tập hợp các vật phẩm, mỗi vật phẩm có một trọng lượng và một giá trị nhất định. Với một chiếc ba lô có sức chứa tối đa là W, làm thế nào để chọn ra các vật phẩm sao cho tổng giá trị của chúng là lớn nhất mà không vượt quá sức chứa của ba lô. Tên g ...

Đăng vào ngày 31 tháng 5 lúc 14:33

Cơ sở cấu trúc dữ liệu và thuật toán

Cơ sở cấu trúc dữ liệu và thuật toán Mục lục- Cơ sở cấu trúc dữ liệu và thuật toán Khoa học máy tính là gì? Cách hiểu trực quan về thuật toán và ý nghĩa Phân tích thuật toán là gì? Tiêu chí đánh giá chương trình Độ phức tạp thời gian biểu thức Big O T(n)=O(f(n)) Cấu trúc dữ liệu Phân tích hiệu năng cấu trúc dữ liệu trong Python Khoa học máy t ...

Đăng vào ngày 28 tháng 5 lúc 19:33

Ghi Chú Thuật Toán: Các Kỹ Năng Cơ Bản

Duyệt Cây function duyetTruoc(goc) { if (goc) { duyetPath.push(goc.giaTri); duyetTruoc(goc.trai); duyetTruoc(goc.phai); } } function duyetGiua(goc) { if (goc) { duyetGiua(goc.trai); duyetPath.push(goc.giaTri); duyetGiua(goc.phai); } } function duyetSau(goc) { if (goc) { ...

Đăng vào ngày 27 tháng 5 lúc 04:05

Những Lưu Ý Quan Trọng Khi Lập Trình Thi Đấu

Tóm tắt Luôn kiểm tra kích thước mảng sau khi viết xong bài. Nên khai báo lớn hơn 2-4 lần so với giới hạn đề bài. Đặc biệt chú ý khi có nhiều biến như N, M, K... Phải đọc kỹ đề bài. Dữ liệu kiểm thử có thể có nhiều dạng khác nhau. Nếu đề không nói rõ không có cạnh song song hoặc tự vòng, hãy tự xử lý. Xác định rõ dữ liệu đầu vào và ...

Đăng vào ngày 26 tháng 5 lúc 09:28

[NOI Online #1 - Vòng Nâng Cao]

A Đầu tiên, hãy xem xét trường hợp đặc biệt khi \(t = 2\). Không khó nhận thấy thao tác này khá không trực quan, vì vậy có thể xem xét việc nối một cạnh vô hướng giữa mỗi cặp đỉnh \(u, v\) trong thao tác \((u, v)\). Rõ ràng các thành phần liên thông cần được xem xét riêng biệt. Với cùng một thành phần liên thông, tổng giá trị của các đỉnh trong ...

Đăng vào ngày 24 tháng 5 lúc 03:39

Giải đề thi AtCoder Beginner Contest 377

Bài A - Kiểm tra chuỗi ABC Cho chuỗi 3 ký tự, xác định xem chuỗi đó có chứa đủ 3 ký tự A, B, C hay không. Giải pháp: Đếm tần suất xuất hiện từng ký tự bằng mảng đếm. Xem mã nguồn #include<bits/stdc++.h> using namespace std; int main() { string s; cin >> s; sort(s.begin(), s.end()); cout > c; if (c == '#') { ...

Đăng vào ngày 21 tháng 5 lúc 21:00

Ghi chép giải bài thi NOI 2025 (Phần 3)

Giải các bài tập luyện tập (Phần 15) \(\text{Bởi DaiRuichen007}\) Vòng #69 - 20250409 A. [QOJ5091] Bài toán mùa đông Liên kết đề bài Tóm tắt đề bài Cho \(n,k\), với \(n\) là số chẵn, cho \(l_1\sim l_k,r_1\sim r_k\), trong đó \(l_i=n-2i+1,r_i=n+2i-1\), tìm một bộ ghép hoàn hảo \(p\) sao cho số cặp \((l_i,r_{p_i})\) nguyên tố cùng nhau là nhiều ...

Đăng vào ngày 20 tháng 5 lúc 10:24

Hệ thống kiến thức C++

C++ là một ngôn ngữ lập trình mạnh mẽ và linh hoạt, được sử dụng rộng rãi trong phát triển phần mềm hệ thống, game, ứng dụng hiệu năng cao và nhiều lĩnh vực khác. Để nắm vững C++, việc xây dựng một hệ thống kiến thức bài bản là vô cùng quan trọng. Bài viết này sẽ phác thảo một lộ trình học tập toàn diện, bao gồm các khía cạnh từ cơ bản đến n ...

Đăng vào ngày 20 tháng 5 lúc 04:25

Sự Khác Biệt Giữa ConcurrentHashMap Trong Java 7 và Java 8

Trong Java 8, lớp công cụ ConcurrentHashMap phổ biến đã được nâng cấp đáng kể, so với phiên bản Java 7 trước đó, nhiều khía cạnh đã được điều chỉnh và thay đổi. Tuy nhiên, tư tưởng thiết kế Segment trong Java 7 vẫn còn giá trị tham khảo và học tập, vì vậy trong nhiều tình huống, nhà phỏng vấn thường hỏi bạn: Cấu trúc của ConcurrentHashMap trong ...

Đăng vào ngày 17 tháng 5 lúc 19:41