Bài này là đảo ngược của bài trong link sau: https://kienthuc24h.com/stack-spoj-onp-transfer-expression-infix-postfix/ Các bạn lưu ý về quy định dấu ngoặc ( ). Ví dụ: ab+ —> (a+b) at+bac++cd+^* —-> ((a+t)*((b+(a+c))^(c+d))) abc-+de-fg-h+/* —-> ((a+(b-c))*((d-e)/((f-g)+h))) Thuật toán Đọc từ đầu đến cuối chuỗi, thực hiện các thao tác sau: Nếu gặp kí tự là ‘a’ -> ‘z’ thì cho vào […]
Thuật toán
[Stack]- SPOJ ONP – Transfer the expression – Infix to Postfix
Link: http://www.spoj.com/problems/ONP/ Giải thích SPOJ ONP Chuyển cách biểu diễn 1 biểu thức từ infix sang postfix ( các bạn google để hiểu thêm hihi). Thứ tự biểu thức quy định bởi dấu ngoặc đơn. (). Ví dụ: (a+b) —–> ab+ ((a+t)*((b+(a+c))^(c+d))) —–> at+bac++cd+^* ((a+(b-c))*((d-e)/((f-g)+h))) ——> abc-+de-fg-h+/* Lưu ý: Khi cho các bộ test, các bạn […]
[BFS] – SPOJ PPATH
Link: http://www.spoj.com/problems/PPATH/ Hiểu đề PPATH spoj Bạn đuợc cho 2 số nguyen tố 4 chữ số. Việc của bạn là tìm số bước ngắn nhất để biến số nguyen tố thứ 1 thành số thứ 2. Quy định rang trong mỗi bước bạn chỉ đổi được 1 trong 4 chữ số của số thứ 1 để đợợc 1 số nguyen tố mới. Cứ […]
[BFS] – Dhoom4 – Hackereath
Link đề bài: https://www.hackerearth.com/practice/algorithms/graphs/breadth-first-search/practice-problems/algorithm/dhoom-4/description/ 1. Giải thích đề BFS Dhoom hackerearth Bạn có chìa khóa mang giá trị cho trước và một giá trị khóa cần tìm. Cho bạn danh sách các giá trị. Hỏi bạn có thể nhân lần lượt giá trị chìa khóa lần lượt với các số trong danh sách để được giá […]
Bài 3: Danh sách kề C++ Lý thuyết đồ thị
Để khắc phục yếu điểm của danh sách cạnh về việc tìm đỉnh kề, mà vẫn đảm bảo tổ chức dữ liệu tối ưu nhất phục vụ duyệt tìm trong đồ thị mà Danh sách kề được ra đời. 1. Ý tưởng danh sách kề a. Ý tưởng a.1 Tổ chức bằng mảng Tổ chức […]
Bài 2: Danh sách cạnh C++ Lý thuyết đồ thị
Danh sách cạnh trong lý thuyết đồ thị là một cách tổ chức dữ liệu thường được dùng trong thuật toán tìm cây khung nhỏ nhất Kruskal, nó giúp bạn tiết kiệm chi phí lưu trữ và chi phí duyệt với đồ thị thưa. 1. Tổng quan về danh sách cạnh trong lý thuyết đồ […]
Bài 1: Ma trận kề C++/Pascal Lý thuyết đồ thị
Trong lý thuyết đồ thị, việc tổ chức dữ liệu cho từng bài toán, thuật toán rất quan trọng, nó quyết định kích thước dữ liệu bài toán, thời gian thực tế của bài toán. Vì vậy trong bài viết này mình sẽ giới thiệu các bạn một số cách tổ chức dữ liệu trong […]
Bài 6: Thuật toán loang trên ma trận
Thuật toán loang (Thuật toán vết dầu loang) là một trong những thuật toán được dùng khá nhiều trong tin học, điển hình là thuật toán loang trên ma trận này được ứng dụng để đếm số thành phần liên thông trên ma trận. Nó trong các trò chơi nổi tiếng như line 98, trò […]
Bài 4: Thuật toán tìm kiếm theo chiều sâu DFS pascal c++
Thuật toán tìm kiếm theo chiều sâu DFS là thuật toán tìm kiếm trên cây hoặc đồ thị. Thuật toán này khác với BFS ở chỗ BFS duyệt theo chiều rộng (những đỉnh gần đỉnh gốc sẽ được thăm trước), còn DFS duyệt theo chiều sâu (Xuất phát từ đỉnh gốc, từ đỉnh đó phát […]
[Cơ bản] Ứng dụng BFS để giải quyết bài tập đường đi của quân mã trong đồ thị
Như các bạn đã biết, BFS là thuật toán duyệt theo chiều rộng, thuật toán này có thể ra tìm đường đi ngắn nhất, trong mô hình đồ thị cơ bản chúng ta không chỉ dùng bfs trên các đỉnh thông thường, mà chúng ta còn có thể dùng BFS để giải quyết các bài […]