Thử thách ngày 2022.11.09 - Giải thuật mô phỏng NOIP2022

Khoa học Nguồn: CF461C Appleman and a Sheet of Paper, độ khó 2200. Nhận thấy rằng với các giá trị p ≤ floor(now/2), việc duy trì trực tiếp là hợp lệ về mặt độ phức tạp. Trong trường hợp p > floor(now/2), việc đảo ngược nửa bên phải cũng đúng. Do đó, ta duy trì một nhãn đảo ngược, thực hiện thao tác trực tiếp và cập nhật tổng đoạn, thời gian ...

Đăng vào ngày 22 tháng 8 lúc 20:00

Khái niệm và Sử dụng Phương thức trong Java

Phương thức là gì? Trong Java, phương thức là một tập hợp các câu lệnh được nhóm lại để thực thi một chức năng cụ thể. Chúng hoạt động như các khối chức năng, giải quyết một loại vấn đề nhất định thông qua các bước được sắp xếp. Phương thức thuộc về các lớp hoặc đối tượng và có thể được tạo trong một chương trình và gọi từ những nơi khác. ...

Đăng vào ngày 10 tháng 8 lúc 02:07

Giải mã bài toán P5318: Hướng dẫn chi tiết về duyệt đồ thị bằng DFS đệ quy

Chào mừng các bạn đến với bài viết giải thích chi tiết cách áp dụng kỹ thuật Duyệt theo chiều sâu (DFS) sử dụng đệ quy để giải quyết bài toán P5318. Chúng ta sẽ cùng nhau khám phá từng bước một cách thật tự nhiên và dễ hiểu, như một cuộc trò chuyện giữa những người bạn. Phân tích bài toán (Phiên bản siêu đơn giản) Hãy tưởng tượng bạn đ ...

Đăng vào ngày 26 tháng 7 lúc 14:48

Hướng dẫn và Ghi chú về Ngăn Xếp trong C

Mục lục Giới thiệu Nắm vững định nghĩa, đặc điểm và kiểu dữ liệu trừu tượng của ngăn xếp Định nghĩa Là cấu trúc chỉ cho phép chèn/xóa tại đầu cuối Đặc điểm Đầu cuối là đỉnh (top) Nguyên tắc sau vào trước ra Kiểu dữ liệu trừu tượng Trang 57 Mối quan hệ giữa ngăn xếp và đệ quy Đệ quy Định nghĩa đệ quy Khi một hà ...

Đăng vào ngày 3 tháng 7 lúc 13:56

Xây dựng cây nhị phân từ dãy trung thứ tự và hậu thứ tự

Bài toán Cho hai mảng số nguyên trungTu và hauTu tương ứng biểu diễn dãy trung thứ tự và hậu thứ tự của cùng một cây nhị phân. Nhiệm vụ là xây dựng lại cây nhị phân từ hai dãy này. Ví dụ 1: <strong>Đầu vào:</strong> trungTu = [9,3,15,20,7], hauTu = [9,15,7,20,3]<br><strong>Đầu ra:</strong> [3,9,20,null,null,15,7] ...

Đăng vào ngày 3 tháng 7 lúc 10:33

Giải bài toán lấp đầy thảm bằng phương pháp Chia để trị

Bài toán: P1228 Lấp đầy thảm - Luogu Hiểu rõ cách tiếp cận bài toán này sẽ giúp bạn giải quyết một cách dễ dàng. Trước hết, chúng ta chia hình vuông thành bốn vùng: trên-trái, dưới-trái, trên-phải, dưới-phải. Đầu tiên, xác định tọa độ (x, y) nằm ở vùng nào. Nếu tọa độ nằm ở góc trên-trái, chúng ta đặt một ô vuông ở đường chéo đối diện, tức là ...

Đăng vào ngày 27 tháng 6 lúc 01:55

Sắp xếp hợp nhất

Giới thiệu Sắp xếp hợp nhất (Merge Sort) là thuật toán sắp xếp dựa trên nguyên lý chia để trị và đệ quy. Bài viết này trình bày chi tiết về cách triển khai và tối ưu thuật toán này. Nguyên lý hoạt động Thuật toán hoạt động theo 2 bước chính: Chia mảng: Chia mảng thành hai nửa và thực hiện sắp xếp từng nửa. Hợp nhất: Kết hợp hai mảng đã được ...

Đăng vào ngày 24 tháng 6 lúc 02:58

[Giải Tứ Lanqiao Cup C++ Nhóm B] Biểu diễn số dưới dạng phân số

Nguồn: Giải Tứ Lanqiao Cup Nhóm C++ Thuật toán: Quay lui và tối ưu Mô tả bài toán Số 100 có thể biểu diễn dưới dạng phân số như sau: 100 = 3 + 69258/714 Cũng có thể biểu diễn là: 100 = 82 + 3546/197 Lưu ý đặc điểm: trong biểu diễn phân số, các chữ số từ 1 đến 9 xuất hiện chính xác một lần (không chứa số 0). Loại biểu diễn phân số như vậy, số 1 ...

Đăng vào ngày 21 tháng 6 lúc 01:54

Triển khai chuỗi Fibonacci bằng vòng lặp

1. Định nghĩa chuỗi Fibonacci Chuỗi Fibonacci, còn được gọi là dãy Fibonacci, là một chuỗi số mà trong đó mỗi số sau bằng tổng của hai số trước nó. Chuỗi này được nhà toán học người Ý Leonardo Fibonacci giới thiệu vào năm 1202. Định nghĩa chính xác của nó là: 1. Số hạng thứ nhất (F(1)) và số hạng thứ hai (F(2)) đều bằng 1; 2. Từ số hạng thứ ba ...

Đăng vào ngày 14 tháng 6 lúc 06:26

Codeforces Round 986 (Div. 2) - Phân tích và giải thuật

Bài A: Di chuyển theo hướng Do giới hạn nhỏ, ta có thể mô phỏng toàn bộ quá trình di chuyển bằng cách lặp lại chuỗi lệnh nhiều lần. Chỉ cần kiểm tra sau mỗi bước xem đã đến tọa độ mục tiêu chưa. #include <iostream> #include <string> using namespace std; void process() { int n, tx, ty; string moves; cin >> n >> tx >> ty ...

Đăng vào ngày 12 tháng 6 lúc 08:21