Bạn nào giỏi về thuật toán giúp mình qua cái này với

zxtuyenxz

T.E.T.Я.I.S
Tham gia ngày
14/8/05
Bài viết
548
Reaction score
0
captureoai.jpg

Bài toán như trong ảnh :(
 
đây mà là bài toán ah:o:o.
Thuật toán đường đi ngắn nhất trên heap
 
Mấy dòng cuối là bài toán đấy
Hai heap lưu đỉnh và cạnh
Nếu mà đọc các chương trước rồi thì chắc là làm dễ thôi. Mình chưa đọc các chương trước :'>
 
capturefry.jpg

đây là hướng giải nhưng mình vẫn ko hiểu lắm, bạn nào có thể làm nó đưới dạng C đc ko vậy pascal cũng đc
Mình gà cái này lắm, chỉ đọc đc code thôi
 
Pseudocode đọc còn không hiểu thì sao đọc code C hay Pascal được :|

Đại loại là thế này
Tạo Vi, Ei như 4 dòng đầu trong thuật toán trên đề
Với mỗi Ei tạo một heap Hi với node là cạnh trong Ei, weigh là khóa của từng node
Cho một đỉnh vào Set_of_ProcessedVis, chọn Hi tương ứng
Lấy ra node nhỏ nhất trong Hi mà ít nhất một trong 2 đỉnh của nó không nằm trong Set_of_ProcessedVis
Nhét node đó vào T
Chọn heap Hi tương ứng với 2 đỉnh của node đó, hợp chúng nó với nhau
Nhét Vi vào Set_of_ProcessedVis​
cho tới khi toàn bộ Vi nằm trong Set_of_ProcessedVis

Tư tưởng của thuật toán là thế này
Chọn một đỉnh chưa được xử lý
Đánh dấu đỉnh đó đã được xử lý
Lấy ra cạnh nhỏ nhất của đỉnh đó mà đỉnh còn lại cũng chưa được xử lý, cho vào cây kết quả
Chọn đỉnh còn lại trên cạnh đó​
Cho đến khi toàn bộ các đỉnh đã được xử lý hết
 
attachment.php

Mình vẫn chưa hiểu lắm,bạn nào có thể dựa vào hình trên nói lướt qua cho mình thì tốt quá, hình trên có 6 đỉnh tưởng ứng mỗi cạnh là độ dài.
 

Attachments

  • Untitled-1.jpg
    Untitled-1.jpg
    56.3 KB · Đọc: 45
:-wsao bạn ko vào diễn đàn môn học mà post , cái này còn liên quan đến cách lưu trữ nữa

thông thường từ thuật toán có thể biến thành code được rồi, cứ đi từ trên xuống, ánh xạ qua ngôn ngữ lập trình cụ thể (java,C,C++, C#, VB ...)
 
Back
Top