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

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

변의 수

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

요약
간선 삽입과 삭제가 번갈아 일어나는 그래프에서, 각 정점 주변의 이웃 크기 순서가 번갈아 바뀌는 지그재그 사이클들로 모든 간선을 정확히 한 번씩 나눌 수 있는지 매 질의마다 판정한다.
난이도

어려움10점 중 9점

유형
그래프, 구현, 그리디, 정렬
정답자
아직 제출이 없습니다

문제

새로운 메타.

무방향 그래프의 지그재그 사이클은 꼭짓점의 수열 a0,a1,…,ak−1a_0, a_1, \ldots, a_{k-1}로서, 꼭짓점이 서로 다를 필요는 없으며, 모든 i:0≤i<ki: 0 \leq i < k에 대해 aia_i와 a(i+1)mod  ka_{(i+1) \mod k}가 그래프에서 인접하고 다음 중 하나가 성립하는 수열이다.

  1. a(i+k−1)mod  k<ai,ai>a(i+1)mod  ka_{(i+k-1)\mod k} < a_i, a_i > a_{(i+1) \mod k}
  2. a(i+k−1)mod  k>ai,ai<a(i+1)mod  ka_{(i+k-1)\mod k} > a_i, a_i < a_{(i+1) \mod k}

사이클이 변 (u,v)(u, v)를 pp번 포함한다는 것은 ai=u,a(i+1)mod  k=va_i = u, a_{(i+1) \mod k} = v 또는 ai=v,a(i+1)mod  k=ua_i = v, a_{(i+1) \mod k} = u인 서로 다른 i:0≤i<ki: 0 \leq i < k가 정확히 pp개 존재한다는 뜻이다.

그래프가 분할 가능하다는 것은 지그재그 사이클의 집합이 존재하여, 각 변에 대해 정확히 하나의 사이클이 그 변을 11번 포함하고 나머지 모든 사이클은 그 변을 00번 포함한다는 뜻이다. 즉 그래프의 변을 지그재그 사이클로 분할할 수 있다는 뜻이다.

처음에 비어 있는 그래프가 있다. 다음 두 종류의 질의를 처리하자.

  1. 꼭짓점 uu와 vv 사이에 변을 추가한다.
  2. 꼭짓점 uu와 vv 사이의 변을 제거한다.

각 질의 후에 그래프가 분할 가능한지 출력한다.

입력

첫째 줄에 두 정수 nn과 qq가 주어진다. (2≤n≤3⋅105,1≤q≤3⋅1052 \leq n \leq 3 \cdot 10^5, 1 \leq q \leq 3 \cdot 10^5) nn은 그래프의 꼭짓점 수, qq는 질의의 수이다.

다음 qq개의 줄이 주어진다. 그중 ii번째 줄에는 세 정수 t,u,vt, u, v가 주어진다. (t∈{1,2},1≤u<v≤nt \in \{1, 2\}, 1 \leq u < v \leq n) tt는 질의의 종류이고, uu와 vv는 t=1t = 1이면 추가할 변, t=2t = 2이면 제거할 변의 양 끝점이다. 이미 있는 변을 추가하거나 없는 변을 제거하라는 질의는 주어지지 않는다.

출력

qq개의 줄을 출력한다. ii번째 줄에는 처음 ii개의 질의를 처리한 후 그래프가 분할 가능하면 1, 아니면 0을 출력한다.

힌트

모든 질의를 처리한 후 가능한 지그재그 사이클 집합 중 하나는 {[1,4,3,5],[2,6,4,5]}\{[1,4,3,5], [2,6,4,5]\}이다.

예제1

  1. 예제 1

    입력
    6 10
    1 1 4
    1 1 5
    1 4 5
    1 3 5
    1 3 4
    2 4 5
    1 4 5
    1 2 5
    1 2 6
    1 4 6
    
    예상 출력
    0
    0
    0
    0
    0
    1
    0
    0
    0
    1