프림 최소 스패닝 트리 알고리즘 무게

1  // 트리 알고리즘 가중치 걸쳐도 프림 최소로 구하지 않고 
2  
. 3 #INCLUDE <iostream>
 4. #INCLUDE <CString을>
 5.  은 USING  스페이스 STD를]
 . 6  #DEFINE의 INF의 0x3f3f3f3f
 . 7  INT 지도 [ 505 ] [ 505 ]
 . 8  BOOL 구경 [ 505 ]
 . 9  INT Lowcost [ 505 ]
 10  INT 프림 ( INT N-)
 . 11  {
 12는      INT ANS = 0 , I, J,
 13은      memset 함수 (참조 false로, sizeof의 (구경)) 
 14      [구경 . 1 ] =  ;    // . 선택 점 1 점으로부터 프림 알고리즘 시작 
(15)      에 대한이 (I는 = 2 ; I <= N-; I ++)   // 시점으로부터 2 1 Lowcost 고려한 
16          [I] = 맵 [Lowcost을 1 ] [I]
 . 17       (I는 = 2 I ++; I는 = N- < )
 (18)가      {
 19.          //를 찾을 최소 비용은 현재 세트 포인트 선택한 
20          INT 분 = INF, P]
 (21)가          대해 (J = 2 , J <= N-은, J ++ )
 (22)는              IF는(! 구경은 [J]를 && Lowcost [J] < 분)
 23가              {
 24                  분 = Lowcost [J],
 (25)                  P = J;
 26이다              }
 27          IF (최소 == INF) // 없이 최소 통신하지 요점은 기재되어 있지 않으면 스패닝 트리 반품 -1 
28              리턴 - 1. ;
 29          // 선정 플러스이 최소 비용 
30          ANS + = 분;
 31이다          // 선택된 세트 포인트가 추가된다 
(32)          구경 [P] = true로 ,
 33는          위해 (J = 1. ; J <= N-은, J ++ )
 (34)는              IF(! 구경 [J] && lowcost [j]가>는 [P]가 [j]가 매핑)하여
 35                  lowcost [j]가 = [P]를 매핑 [J]
36      }
 37      리턴 ANS;
38  }
 39  INT 의 main ()
 40  {
 41      INT N, m;
42      CIN >> >> N m;
43      memset 함수 (지도, INF, 는 sizeof (지도));
44       ( INT 나 = 1 ; i가 <= N; I ++ )
 45      {
 46          INT U, V, w;
47          CIN >> >> U V >> w;
(48)         맵 [U]는 [V] = w는;
49 개          맵 [V] [U] = w;
50      }
 51      COUT << 프림 (m) << ENDL;
52      반환  0 ;
53 }

 

추천

출처www.cnblogs.com/sqdtss/p/12348974.html