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

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

클리크 축제

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

요약
n개 정점 위에 최대 18개의 가중 클리크가 추가된 그래프에서 모든 정점 쌍 사이 최단 거리의 합을 구한다.
난이도

어려움10점 중 9점

유형
그래프, 최단 경로, 비트 연산, 동적 계획법
정답자
아직 제출이 없습니다

문제

John에게는 정수 1,…,n1, \ldots, n로 번호가 붙은 nn개의 정점을 가진 그래프가 있다. 처음에는 그래프에 간선이 없다. 그런 다음 John은 그래프를 kk번 수정하며, 매번 그래프에 클리크 하나를 추가한다. 그는 정수 aa와 1,2,…,n1, 2, \ldots, n의 부분집합 중 공집합이 아닌 집합 SS를 고른다. i,j∈Si, j \in S이고 i≠ji \neq j인 모든 순서 없는 쌍 (i,j)(i, j)에 대해, John은 정점 ii와 jj 사이에 무게 aa의 무향 간선을 추가한다. John의 그래프에는 평행 간선이 생길 수 있다.

정점 uu와 vv 사이의 거리는 다음과 같이 정의된다. du,vd_{u,v}를 정점 uu와 vv 사이 간선의 최소 무게, 그러한 간선이 없으면 ∞\infty로 표기하자. 그러면 dist(u,v)=min⁡i1,…,ip(du,i1+di1,i2+…+dip−1,ip+dip,v)\mathrm{dist}(u,v) = \min\limits_{i_1, \ldots, i_p} \left(d_{u,i_1} + d_{i_1,i_2} + \ldots + d_{i_{p-1},i_p} + d_{i_p,v}\right)이다. 즉, 거리는 uu와 vv 사이 최단 경로의 길이이다.

여러분의 과제는 ∑i=1n−1∑j=i+1ndist(i,j)\sum\limits_{i=1}^{n-1} \sum\limits_{j = i+1}^n dist(i,j)를 계산하는 것이다. 모든 항이 유한함이 보장된다.

입력

첫째 줄에 두 정수 nn과 kk가 주어진다 (1≤n≤100 0001 \le n \le 100\,000, 1≤k≤181 \le k \le 18). 다음 kk개의 줄에는 추가된 클리크의 설명이 주어진다. 각 줄에는 정수 aa (1≤a≤1071 \le a \le 10^7), ∣S∣|S| (1≤∣S∣≤n1 \le |S| \le n), 그리고 ∣S∣|S|개의 정수 s1,…,s∣S∣s_1, \ldots, s_{|S|} (1≤si≤n1 \le s_i \le n, 모든 sis_i는 서로 다름)가 주어진다. 이들은 각각 클리크에 있는 간선의 무게, 클리크에 있는 정점의 수, 정점들의 번호이다.

입력에서 모든 ∣S∣|S|의 합은 300 000300\,000을 넘지 않는다.

출력

문제의 답을 나타내는 정수 하나를 출력한다.

예제2

  1. 예제 1

    입력
    10 3
    10 5 1 2 3 4 5
    10 5 6 7 8 9 10
    1 2 5 6
    
    예상 출력
    625
    
  2. 예제 2

    입력
    3 2
    1 2 1 2
    1 2 2 3
    
    예상 출력
    4