만드는 중입니다

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

그리디 이분 매칭

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

요약
가중치 1부터 q까지의 간선을 차례로 더할 때, 가중치가 작은 간선을 우선하는 탐욕 매칭의 크기를 각 접두사마다 구합니다.
난이도

어려움10점 중 9점

유형
그래프, 그리디, 분할 정복
정답자
아직 제출이 없습니다

문제

왼쪽 부분에 nn개, 오른쪽 부분에 nn개, 총 2n2n개의 정점을 가진 가중치가 있는 이분 그래프를 생각한다. 각 부분의 정점은 1부터 nn까지 번호가 매겨져 있다. 모든 매칭 중에서 가중치 1인 간선 수가 최대인 매칭을 고르고, 그중에서 가중치 2인 간선 수가 최대인 매칭을 고르는 식으로 차례로 최대화한 매칭을 greedy 매칭이라고 한다.

이 문제의 목표는 간선이 계속 추가되는 그래프에서 greedy 매칭의 크기(간선 수)를 구하는 것이다.

입력

첫 줄에 음이 아닌 정수 nn과 qq (n≤105n \leq 10^5, q≤103q \leq 10^3)가 주어진다. 각각 한 부분의 정점 수와 간선 가중치의 종류 수이다.

이어서 qq개의 블록이 주어진다. ii번째 블록은 가중치가 ii인 간선의 개수 mim_i로 시작한다. 다음 mim_i개의 줄에는 정수 xx, yy (1≤x,y≤n1 \leq x, y \leq n)가 한 줄에 하나씩 주어지며, 왼쪽 정점 xx와 오른쪽 정점 yy 사이에 간선을 추가한다. ∑mi≤2⋅105\sum m_i \leq 2 \cdot 10^5이 보장된다.

같은 두 정점 사이에 간선이 여러 개 있을 수 있다.

출력

한 줄에 qq개의 정수를 출력한다. 가중치가 1 이하인 간선만 볼 때의 답, 2 이하일 때의 답, ..., qq 이하일 때의 답을 차례로 출력한다.

예제1

  1. 예제 1

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