1. Trang chủ
  2. » Luận Văn - Báo Cáo

GIẢI THUẬT tìm ĐƯỜNG đi NGẮN NHẤT DIJKSTRA

105 646 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 105
Dung lượng 502 KB

Nội dung

Niên Luận 1 GVHD:K.S Lê Thị Phương DungLỜI NÓI ĐẦU Lý thuyết đồ thị là một lĩnh vực nghiên cứu đã có từ lâu đờivà có nhiều ứngdụng hiện đại.Những tư tưởng cơ bản của lý thuyết đồ thị đươ

Trang 1

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN NIÊN LUẬN 1

(Học kỳ 2, Niên khóa 2010-2011)

GIÁO VIÊN HƯỚNG DẪN:

SINH VIÊN THỰC HIỆN:

Trang 2

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

I.HÌNH THỨC(Tối đa 0,5 điểm)

Bìa(Tối đa 0,25 điểm)

Trang 3

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

 Các tiêu đề: Trường ĐHCT, Khoa CNTT

 Loại niên luận: 1, Tên đề tài

 Giáo viên hướng dẫn: chức danh, họ tên

 Thông tin về các sinh viên thực hiện: họ tên, mã số, lớp

 Năm thực hiện

Bố cục (tối đa 0.25 điểm)

 Nhận xét của giáo viên hướng dẫn và giáo viên chấm

 Mục lục: cấu trúc chương, mục và tiểu mục

 Phụ lục (nếu có)

 Tài liệu tham khảo

Trang 4

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

II NỘI DUNG (Tối đa 3,5 điểm)

Tổng quan (tối đa 0,5 điểm)

 Mô tả bài toán, mục tiêu cần đạt được (0,25 điểm)

 Hướng giải quyết và kế hoạch thực hiện (0,25 điểm)

Lý thuyết (tối đa 0,5 điểm)

 Các khái niệm sử dụng trong đề tài

 Kết quả vận dụng lý thuyết vào đề tài

Ứng dụng (tối đa 2,0 điểm)

 Phân tích yêu cầu bài toán, xây dựng các cấu trúc dữ liệu

cần thiết (tối đa 0,5 điểm)

Giải thuật (Lưu đồ-Ngôn ngữ giả) (1,0 điểm)

Trang 5

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Giới thiệu chương trình (0,5 điểm)

Kết luận (tối đa 0,5 điểm)

 Nhận xét kết quả đạt được

 Hạn chế

 Hướng phát triển

III CHƯƠNG TRÌNH DEMO (Tối đa 5,0 điểm)

Giao diện thân thiện với người dùng (1.0 điểm)

Hướng dẫn sử dụng (0,5 điểm)

Kết quả thực hiện đúng với kết quả của phần ứng dụng (3,5

Trang 6

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

điểm)

Ghi chú: Điểm trong khung “các sinh viên thực hiện” là điểm kết quả cuối cùng

của từng sinh viên trong quá trình

thực hiện niên luận 1

Nếu sinh viên demo chương trình và trả lời vấn đáp không đạt yêu cầu của giáo viên hướng dẫn thì sinh viên sẽ nhận điểm F cho học phần này

Cần Thơ, ngày … tháng … năm ….

GIÁO VIÊN CHẤM

Trang 7

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Trang 8

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Trang 9

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

………

………

………

………

………

………

………

………

………

………

………

Trang 10

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

………

………

………

………

………

………

………

………

………

………

………

Trang 11

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

………

………

………

………

………

………

………

………

………

………

………

Cần Thơ, ngày … tháng … năm ….

Trang 12

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Giáo viên hướng dẫn

K.S Lê Thị Phương Dung

MỤC LỤC

MỤC LỤC

LỜI NÓI ĐẦU……….6

Trang 13

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

I GIỚI THIỆU TỔNG QUAN ĐỀ TÀI………7

I.1 Tổng quan về bài toán đường đi ngắn nhất……….7

I.1.1 Phát biểu bài toán……… 7

I.1.2.Thuật toán Dijkstra………7

II.CÁC MỤC TIÊU CẦN ĐẠT………7

III KẾ HOẠCH THỰC HIỆN……… 8

Chương II:MỘT SỐ KHÁI NIỆM TRONG ĐỀ TÀI……… 9

I KHÁI NIỆM VỀ ĐỒ THỊ ……….9

II.BIỂU DIỄN ĐỒ THỊ TRÊN MÁY TÍNH……….11

II.1.Ma trận liền kề ( Ma trận kề )………11

II.2.Danh sách cạnh……… 13

III.CÁC THUẬT TOÁN TÌM KIẾM TRÊN ĐỒ THỊ………14

Trang 14

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

III.1Thuật toán tìm kiếm theo chiều sâu(Depth First Search)……… 14

III.2 Thuật toán tìm kiếm theo chiều rộng(Breadth First Search)……….15

III.3.Độ phức tạp tính toán của DFS và BFS……… 16

IV TÍNH LIÊN THÔNG CỦA ĐỒ THỊ……… 16

IV.1.Định Nghĩa……… 16

IV1.2.Đối với đồ thị vô hướng G=(V,E)……….16

IV.1.3.Đối với đồ thị có hướng G=(V,E)………17

IV.2Tính liên thông trong đồ thị vô hướng……….18

V.CÁC THAO TÁC CƠ BẢN VỀ ĐỒ HOẠ……….19

V.1.Khái niệm về đồ hoạ……….19

V.1.2.Khởi động hệ thống đồ hoạ……….20

Trang 15

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

V.1.3.Lỗi đồ hoạ………22

V.1.4.Mẫu và màu……….22

V.1.5.Vẽ………22

Chương III:ỨNG DỤNG THUẬT TOÁN DIJKSTRA GIẢI QUYẾT BÀI TOÁN ĐƯỜNG ĐI NGẮN NHẤT………23

I.Thuật toán Dijkstra……… 23

II.Lưu đồ thuật toán Dijkstra……… 24

III.MỘT SỐ HÀM CON……….25

III.1Hàm nhập ma trận……… 25

III.2.Hàm xuất ma trận……… 25

III.3.Hàm khởi tạo ma trận……….26

III.4.Hàm thêm cung……… 26

Trang 16

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

III.5.Hàm xoá cung………26

IV.HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH DEMO………26

CHƯƠNG IV: KẾT LUẬN………29

I.KẾT QUẢ ĐẠT ĐƯỢC……….29

II.HẠN CHẾ……… 29

III.HƯỚNG KHẮC PHỤC VÀ PHÁT TRIỂN……….29 TÀI LIỆU THAM KHẢO

Trang 17

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Trang 18

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Trang 19

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Trang 20

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

LỜI NÓI ĐẦU

Lý thuyết đồ thị là một lĩnh vực nghiên cứu đã có từ lâu đờivà có nhiều ứngdụng hiện đại.Những tư tưởng cơ bản của lý thuyết đồ thị đươc đề xuất từ nhữngnăm đầu của thế kỷ 18 bởi nhà toán học người Thụy Sĩ Leonhard Euler.Chính ông

là người đã sử dụng đồ thị để giải bài toán nổi tiếng về các cái cầu ở thàng phốKonigsberg

Đồ thị được sử dụng để giải quyết các bài toán trong nhiều lĩnh vực khácnhau Chẳng hạn , đồ thị có thể sử dụng để xác định các mạch vòng trong vấn đềgiải tích mạch điện.Chúng ta có thể phân biệt các hợp chất hoá học hữu cơ khácnhau với cùng công thức phân tử nhưng khác nhau về cấu trúc phân tử nhờ đồ

Trang 21

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

được với nhau hay không nhờ mô hình đồ thị của mạng máy tính Đồ thị có trọng

số trên các cạnh có thể sử dụng để giải các bài toán như : tìm đường đi ngắn nhấtgiữa hai thành phố trong cùng một mạng giao thông Chúng ta còn sử dụng đồ thị

để giải các bài toán về lập lịch,thời khoá biểu,và phân bố tần số cho các trạm phátthanh và truyền hình

Mục đích ta tìm hiểu là nhằm giới thiệu các khái niệm cơ bản,về đồ thị cóhướng và đồ thị vô hướng,các cách biểu diễn đồ thị,các phương pháp tìm kiếmtrên đồ thị(tìm theo chiều rộng và chiều sâu)và tính liên thông,các giải thuật cóliên quan về đồ thị và vận dụng giải thuật điển hình Dijkstra để tìm đường đi ngắnnhất trên đồ thị có hướng,bên cạnh đó là giới thiệu một số thao tác cơ bản về đồhoạ

Trang 22

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Trang 23

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

CHƯƠNG I:GIỚI THIỆU

I GIỚI THIỆU TỔNG QUAN ĐỀ TÀI

I.1 Tổng quan về bài toán đường đi ngắn nhất:

I.1.1 Phát biểu bài toán

Trang 24

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Cho G=(X,E) là một đồ thị có hướng.Ta định nghĩa ánh xạ trọng lượngnhư sau:

Mục đích của bài toán đường đi ngắn nhất là tìm đường đi P từ i đến j

mà có trọng lượng nhỏ nhất trong số tất cả những đường đi có thể có

Nhận xét:

Trang 25

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Khi làm bài toán đường đi ngắn nhất thì chúng ta có thể bỏ bớt các cạnhsong song và chỉ chừa lại các cạnh có trọng lượng nhỏ nhất trong các cạnhsong song

Đối với các khuyên có trọng lượng không âm có thể bỏ đi mà không ảnhhưởng đến kết quả bài toán.Đối với các khuyên có trong lượng âm ta có thể

đi đến kết luận bài toán không có lời giải

Do các nhận xét vừa nêu,có thể xem dữ liệu nhập vào của bài toánđường đi ngắn nhất là ma trận L được định nghĩa như sau:

Trọng lượng cạnh nhỏ nhất nối i đến j nếu có,

Trang 26

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Li,j { 0 nếu không có cạnh nối i đến j

Trong quá trình trình bày thuật toán,để cho tổng quát,giá trị 0 trong ma trận

L có thể được thay thế bằng +∞.Tuy nhiên khi cài đặt chương trình chúng

ta vẫn có thể dùng 0 thay vì +∞ bằng cách đưa thêm một số lênh kiểm tratrong chương trình

I.1.2.Thuật toán Dijkstra

-Xét đồ thị G=(X,E) có trọng với X={1,2,…,n} và giả sử các cạnh

không âm

Trang 27

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

-Dữ liệu nhập cho thuật toán là ma trận trọng lượng L(với qui ước

Lh,k=+∞ nếu không có cạnh nối từ đỉnh h đến đỉnh k) và hai đỉnh i,j chotrước

-Dữ liệu xuất là đường đi ngắn nhất từ i đến j

Trang 28

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Công Việc

Phân tích đề tài phác thảo giải thuật, xác định các hàm cài đặt,

Trang 29

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Viết hàm main, bổ sung một số tính năng phụ cho chương trình Tuần 7Kiểm tra toàn bộ chương trình, chạy thử, chỉnh sửa Tuần 8

Trang 30

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

III.KẾ HOẠCH THỰC HIỆN

Trang 31

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

CHƯƠNG II:MỘT SỐ KHÁI NIỆM TRONG ĐỀ TÀI

Có thể phân loại đồ thị theo đặc tính và số lượng của tập các cạnh E:

Cho đồ thị G = (V, E) Định nghĩa một cách hình thức

Trang 32

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

1. G được gọi là đơn đồ thị nếu giữa hai đỉnh u, v của V có nhiềunhất là 1 cạnh trong E nối từ u tới v

G được gọi là đa đồ thị nếu giữa hai đỉnh u, v của V có thể có nhiều hơn 1

cạnh trong E nối từ u tới v (Hiển nhiên đơn đồ thị cũng là đa đồ thị)

G được gọi là đồ thị vô hướng nếu các cạnh trong E là không định hướng, tức

là cạnh nối hai đỉnh u, v bất kỳ cũng là cạnh nối hai đỉnh v, u Hay nói cáchkhác, tập E gồm các cặp (u, v) không tính thứ tự (u, v)≡(v, u)

G được gọi là đồ thị có hướng nếu các cạnh trong E là có định hướng, có thể

có cạnh nối từ đỉnh u tới đỉnh v nhưng chưa chắc đã có cạnh nối từ đỉnh v tớiđỉnh u Hay nói cách khác, tập E gồm các cặp (u, v) có tính thứ tự: (u, v) ≠ (v, u).Trong đồ thị có hướng, các cạnh được gọi là các cung Đồ thị vô hướng cũng có

Trang 33

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

thể coi là đồ thị có hướng nếu như ta coi cạnh nối hai đỉnh u, v bất kỳ tươngđương với hai cung (u, v) và (v, u)

Ví dụ:

Trang 34

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Trang 35

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Đơn đồ thị

Trang 36

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Đa đồ thị Hình 1:Phân loại đồ thị

Như trên định nghĩa đồ thị G = (V, E) là một cấu trúc rời rạc, tức là các tập V

và E hoặc là tập hữu hạn, hoặc là tập đếm được, có nghĩa là ta có thể đánh số thứ

Trang 37

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

tự 1, 2, 3 cho các phần tử của tập V và E Hơn nữa, đứng trên phương diện ngườilập trình cho máy tính thì ta chỉ quan tâm đến các đồ thị hữu hạn (V và E là tậphữu hạn) mà thôi, chính vì nếu không chú thích gì thêm thì khi nói tới đồ thị, tahiểu rằng đó là đồ thị hữu hạn

Cạnh liên thuộc, đỉnh kề, bậc

• Đối với đồ thị vô hướng G = (V, E) Xét một cạnh e ∈ E, nếu e = (u, v) thì tanói hai đỉnh u và v là kề nhau (adjacent) và cạnh e này liên thuộc (incident) vớiđỉnh u và đỉnh v

• Với một đỉnh v trong đồ thị, ta định nghĩa bậc (degree) của v, ký hiệu deg(v) là

số cạnh liên thuộc với v Dễ thấy rằng trên đơn đồ thị thì số cạnh liên thuộc với vcũng là số đỉnh kề với v

Trang 38

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Định lý: Giả sử G = (V, E) là đồ thị vô hướng với m cạnh, khi đó tổng tất cả các

bậc đỉnh trong V sẽ bằng 2m:

∑ deg(v) = 2m

v∈V

Chứng minh: Khi lấy tổng tất cả các bậc đỉnh tức là mỗi cạnh e = (u, v) bất kỳ sẽ

được tính một lần trong deg(u) và một lần trong deg(v) Từ đó suy ra kết quả

Hệ quả: Trong đồ thị vô hướng, số đỉnh bậc lẻ là số chẵn.

Đối với đồ thị có hướng G = (V, E) Xét một cung e ∈E, nếu e = (u, v) thì tanói u nối tới v và v nối từ u, cung e là đi ra khỏi đỉnh u và đi vào đỉnh v Đỉnh ukhi đó được gọi là đỉnh đầu, đỉnh v được gọi là đỉnh cuối của cung e

Định nghĩa đường đi,chu trinh

Trang 39

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Định nghĩa: Đường đi độ dài n từ đỉnh u đến đỉnh v, trong đó n là số nguyên

dương, trên đồ thị vô hướng G=(V,E) là dãy

x o , x 1 , , x n-1 , x n

trong đó u=x 0 , v=x n , ( x i , x i+1 )E , i= 0, 1, 2 , , n-1

Đường đi nói trên còn có thể biểu diễn dưới dạng các cạnh:

(x 0 , x 1 ) , ( x 1 , x 2 ), , ( x n-1 , x n ).

Đỉnh u gọi là đỉnh đầu, còn đỉnh v gọi là đỉnh cuối của đường đi Đường đi có đỉnh đầu trùng với đỉnh cuối ( tức là u=v) được gọi là chu trình Đường đi hay

chu trình được gọi là đơn nếu như không có cạnh nào bị lặp lại.

Ví dụ: Trên đồ thị vô hướng cho trong hình 2: a,d,c,f,e là đường đi đơn độ dài 4

Còn d,e,c,a không là đường đi do (e,c) không phải là cạnh của đồ thị Dãy b,c,f,e,b

Trang 40

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

là chu trình độ dài 4 Đường đi a,b,e,d,a,b có độ dài là 5 không phải là đường đi đơn, do cạnh (a,b) có mặt trong nó hai lần

Hình 2:Đường đi trên đồ thị

II BIỂU DIỄN ĐỒ THỊ TRÊN MÁY TÍNH

II.1 Ma trận liền kề ( Ma trận kề )

Trang 41

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Giả sử G = (V, E) là một đơn đồ thị có số đỉnh (ký hiệu |V|) là n, Không mấttính tổng quát có thể coi các đỉnh được đánh số 1, 2, , n Khi đó ta có thể biểudiễn đồ thị bằng một ma trận vuông A = [aij] cấp n Trong đó:

• aij = 1 nếu (i, j) ∈E

• aij = 0 nếu (i, j) ∉ E

• Quy ước aii = 0 với mọi i;

Đối với đa đồ thị thì việc biểu diễn cũng tương tự trên, chỉ có điều nếu như (i,j) là cạnh thì không phải ta ghi số 1 vào vị trí aij mà là ghi số cạnh nối giữađỉnh i và đỉnh j

Ví dụ:

Trang 42

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Trang 43

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

1

Trang 44

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Trang 45

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

1

Trang 46

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Hình 3:Ma trận liền kề Các tính chất của ma trận liền kề:

1 Đối với đồ thị vô hướng G, thì ma trận liền kề tương ứng là ma trận đối xứng(aij = aji), điều này không đúng với đồ thị có hướng

2 Nếu G là đồ thị vô hướng và A là ma trận liền kề tương ứng thì trên ma trận A:Tổng các số trên hàng i = Tổng các số trên cột i = Bậc của đỉnh i = deg(i)

Trong trường hợp G là đơn đồ thị, ta có thể biểu diễn ma trận liền kề A tương ứng

là các phần tử logic aij = TRUE nếu (i, j) ∈E và aij = FALSE nếu (i, j) ∉ E

Ưu điểm của ma trận liền kề:

• Đơn giản, trực quan, dễ cài đặt trên máy tính

• Để kiểm tra xem hai đỉnh (u, v) của đồ thị có kề nhau hay không, ta chỉ việc

Trang 47

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

Nhược điểm của ma trận liền kề:

Bất kể số cạnh của đồ thị là nhiều hay ít, ma trận liền kề luôn luôn đòi hỏi n2 ônhớ để lưu các phần tử ma trận, điều đó gây lãng phí bộ nhớ dẫn tới việc khôngthể biểu diễn được đồ thị với số đỉnh lớn

Với một đỉnh u bất kỳ của đồ thị, nhiều khi ta phải xét tất cả các đỉnh v khác kềvới nó, hoặc xét tất cả các cạnh liên thuộc với nó Trên ma trận liền kề việc đóđược thực hiện bằng cách xét tất cả các đỉnh v và kiểm tra điều kiện auv ≠ 0 Nhưvậy, ngay cả khi đỉnh u là đỉnh cô lập (không kề với đỉnh nào) hoặc đỉnh treo (chỉ

kề với 1 đỉnh) ta cũng buộc phải xét tất cả các đỉnh và kiểm tra điều kiện trên dẫntới lãng phí thời gian

II 2 Danh sách cạnh

Trang 48

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

III CÁC THUẬT TOÁN TÌM KIẾM TRÊN ĐỒ THỊ

III.1 Thuật toán tìm kiếm theo chiều sâu(Depth First Search)

Tư tưởng của thuật toán có thể trình bày như sau: Trước hết, mọi đỉnh x kềvới S tất nhiên sẽ đến được từ S Với mỗi đỉnh x kề với S đó thì tất nhiên nhữngđỉnh y kề với x cũng đến được từ S Điều đó gợi ý cho ta viết một thủ tục đệ quyDFS(u) mô tả việc duyệt từ đỉnh u bằng cách thôngbáo thăm đỉnh u và tiếp tục quátrình duyệt DFS(v) với v là một đỉnh chưa thăm kề với u

• Để không một đỉnh nào bị liệt kê tới hai lần, ta sử dụng kỹ thuật đánh dấu, mỗilần thăm một đỉnh, ta đánh dấu đỉnh đó lại để các bước duyệt đệ quy kế tiếp khôngduyệt lại đỉnh đó nữa

Trang 49

Niên Luận 1 GVHD:K.S Lê Thị Phương Dung

• Để lưu lại đường đi từ đỉnh xuất phát S, trong thủ tục DFS(u), trước khi gọi đệquy DFS(v) với v là một đỉnh kề với u mà chưa đánh dấu, ta lưu lại vết đường đi

từ u tới v bằng cách đặt TRACE[v] := u, tức là TRACE[v] lưu lại đỉnh liền trước vtrong đường đi từ S tới v Khi quá trình tìm kiếm theo chiều sâu kết thúc, đường đi

từ S tới F sẽ là: F ← p1 = Trace[F] ← p2 = Trace[p1] ← ← S

procedure DFS(u∈V);

begin

< 1 Thông báo tới được u >;

< 2 Đánh dấu u là đã thăm (có thể tới được từ S)>;

< 3 Xét mọi đỉnh v kề với u mà chưa thăm, với mỗi đỉnh v đó >;

begin

Trace[v] := u; {Lưu vết đường đi, đỉnh mà từ đó tới v là u}

Ngày đăng: 01/06/2016, 11:07

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w