만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

일반 그래프 최대 가중치 매칭

시간 제한2초메모리 제한512 MB

요약
가중 무방향 그래프가 주어졌을 때, 간선 가중치 합이 최대인 매칭을 찾는다.
난이도

어려움10점 중 9점

유형
그래프, 그리디, 동적 계획법
정답자
아직 제출이 없습니다

문제

정점이 NN개이고 무방향 간선이 MM개인 가중치 그래프가 주어진다. 이 그래프에서 최대 가중치 매칭의 가중치 합을 출력하는 프로그램을 작성하시오.

그래프 G=(V,E)G = (V, E)에서 매칭 TT는 EE의 부분집합이고, TT에 속한 어떤 두 간선도 같은 정점을 공유하지 않는다. 최대 가중치 매칭은 그런 매칭 중 간선 가중치의 합이 가장 큰 것을 말한다. 간선을 하나도 고르지 않은 공집합도 매칭이다.

입력

첫째 줄에 정점의 수 NN(1≤N≤4001 \le N \le 400)과 간선의 수 MM(1≤M≤N(N−1)/21 \le M \le N(N-1)/2)이 주어진다.

둘째 줄부터 MM개의 줄에 걸쳐 각 간선의 정보가 주어진다. 한 줄에는 그 간선이 잇는 서로 다른 두 정점의 번호와 가중치가 주어진다.

정점의 번호는 1 이상 NN 이하의 자연수이고, 간선의 가중치는 1 이상 500,000,000 이하의 자연수이다. 두 정점 사이에 간선은 최대 1개이다.

출력

첫째 줄에 최대 가중치 매칭의 가중치 합을 출력한다.

예제2

  1. 예제 1

    입력
    3 3
    1 3 10
    1 2 3
    2 3 5
    
    예상 출력
    10
    
  2. 예제 2

    입력
    7 20
    5 7 9
    3 7 4
    3 6 6
    2 5 8
    5 1 9
    1 3 6
    6 5 1
    2 7 4
    2 3 5
    6 4 2
    7 1 5
    5 4 4
    4 1 3
    5 3 9
    7 6 4
    2 1 3
    4 3 9
    6 2 7
    4 2 8
    6 1 10
    
    예상 출력
    28