ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

«æ¡I¥Îvb°µ³Ìµu¸ô®|

«æ¡I¥Îvb°µ³Ìµu¸ô®|

Public Class Form1
    Dim best(100, 100) As Integer
    Dim dis(100) As Integer
    Dim d, i, b, en As Integer
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Do While True
            d = Val(InputBox("½Ð¿é¤J¸`ÂIÁ`¼Æ", "³Ìµu¸ô®|", 1))
            b = Val(InputBox("½Ð¿é¤J°_ÂI", "³Ìµu¸ô®|", 1))
            en = Val(InputBox("½Ð¿é¤J²×ÂI", "³Ìµu¸ô®|", 1))
            If Val(b) = Val(en) Or d < 0 Or b < 0 Or en < 0 Or b > d Or en > d Then
                MsgBox("¿é¤J¿ù»~")
            Else
                Exit Do
            End If
        Loop
        For R = 1 To 100
            For P = 1 To 100
                best(R, P) = 10000
            Next
        Next
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Val(d) < Val(TextBox1.Text) Or Val(d) < Val(TextBox2.Text) Then
            MsgBox("¿é¤J¿ù»~")
        Else
            best(Val(TextBox1.Text), Val(TextBox2.Text)) = Val(TextBox3.Text)
            best(Val(TextBox2.Text), Val(TextBox1.Text)) = Val(TextBox3.Text)
            MsgBox("¿é¤J¦¨¥\¡I½Ð¦A¿é¤J¨ä¥L¼Æ­È¡I")
            TextBox1.Text = ""
            TextBox2.Text = ""
            TextBox3.Text = ""
        End If

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim q, min As Integer
        Dim c(100) As Boolean
        For m = 1 To 100 Step 1
            dis(i) = best(Val(b), i)
            c(i) = False
        Next
        For m = 1 To 100
            min = 10000
            For j = 1 To 100
                If c(j) = False And dis(j) <> 10000 Then
                    min = dis(j)
                    q = j
                End If
            Next
            c(q) = True
            For v = 1 To 100
                If dis(v) > dis(q) + best(q, v) And best(q, v) <> 10000 Then
                    dis(v) = dis(q) + best(q, v)
                    dis(v) = min
                End If
            Next
        Next
    End Sub
End Class

³o¬O§Úªºµ{¦¡½X¦ý§Úªº¹Bºâªk¦n¹³¯Ê¤F¬Æ»ò
§Ú¥ý³]¤FÁ`ÂI¼Æ¡B°_ÂI»P²×ÂI
±µµÛ¿é¤J¥þ³¡¶ZÂ÷¼Æ­È
³Ì«á·Q­n¶]¥X©Ò¸g¹LªºÂI»P³Ì¨Î¸ô®|ªø

        ÀR«ä¦Û¦b : ¡i°µ¤Hªº¶}©l¡j¨C¤@¤Ñ³£¬O¬G¤Hªº¶}©l¡A¨C¤@­Ó®É¨è³£¬O¦Û¤vªºÄµ±§¡C
ªð¦^¦Cªí ¤W¤@¥DÃD