아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

이상한 그래프

시간 제한7초메모리 제한1024 MB

요약
행렬 원소의 차이로 간선 가중치가 정해지는 완전 그래프에서, 주어진 M개의 간선을 제거한 뒤 최소 신장 포레스트의 가중치 합을 구합니다.
난이도

어려움10점 중 8점

유형
최소 신장 트리, 유니온 파인드, 그래프
정답자
아직 제출이 없습니다

문제

N×KN \times K 크기의 정수 2차원 배열 AA가 주어진다. 원소는 A0,0,A0,1,…,A0,K−1,A1,0,…,AN−1,K−1A_{0,0}, A_{0,1}, \dots, A_{0,K-1}, A_{1,0}, \dots, A_{N-1,K-1}이다. 또 크기가 MM인 정수 배열 U=U0,…,UM−1U = U_0, \dots, U_{M-1}과 V=V0,…,VM−1V = V_0, \dots, V_{M-1}이 주어진다.

지민이 가중치가 있는 무방향 완전 그래프 GG를 만들었다. 정점 uu와 vv를 잇는 간선의 가중치는 ∣Au,(v mod K)−Av,(u mod K)∣\left\lvert A_{u, (v \bmod K)} - A_{v, (u \bmod K)} \right\rvert이다. 은수가 GG의 최소 스패닝 트리를 구했다.

이후 종영이 0≤i≤M−10 \le i \le M-1인 모든 ii에 대해 UiU_i와 ViV_i를 잇는 간선을 삭제했다. 간선을 삭제하면 GG가 연결되지 않을 수 있다.

간선을 삭제하고 남은 그래프의 최소 스패닝 포레스트를 구하라.

입력

첫 줄에 정수 NN, KK, MM이 공백으로 구분되어 주어진다.

다음 NN개 줄에는 각각 KK개의 정수 Ai,0,…,Ai,K−1A_{i,0}, \dots, A_{i,K-1}이 주어진다. (0≤i≤N−10 \le i \le N-1)

다음 MM개 줄에는 두 정수 UiU_i와 ViV_i가 주어진다. (0≤i≤M−10 \le i \le M-1)

출력

최소 스패닝 포레스트에 포함된 간선 가중치의 합을 출력한다.

제한

  • 1≤NK≤300 0001 \le NK \le 300\,000
  • 1≤K≤N1 \le K \le N
  • 0≤M≤min⁡(N(N−1)2, 300 000)0 \le M \le \min\left(\frac{N(N-1)}{2},\ 300\,000\right)
  • −109≤Ai,j≤109-10^9 \le A_{i,j} \le 10^9 (0≤i≤N−10 \le i \le N-1, 0≤j≤K−10 \le j \le K-1)
  • 0≤Ui<Vi≤N−10 \le U_i < V_i \le N - 1 (0≤i≤M−10 \le i \le M-1)
  • (Ui,Vi)≠(Uj,Vj)(U_i, V_i) \neq (U_j, V_j) (0≤i<j≤M−10 \le i < j \le M-1)

예제2

  1. 예제 1

    입력
    7 1 7
    0
    1
    2
    1
    2
    -5
    -1
    4 5
    1 3
    4 6
    0 4
    2 5
    1 4
    3 4
    
    예상 출력
    8
    
  2. 예제 2

    입력
    7 2 7
    5 1
    4 5
    -2 4
    4 1
    -5 -5
    2 -1
    3 3
    5 6
    0 5
    0 3
    1 2
    4 6
    2 3
    2 6
    
    예상 출력
    11