네트워크 뒤집기

시간 제한1초메모리 제한128 MB

요약
무방향 그래프에서 간선 토글이 일어날 때마다, 호스트 1에서 도달할 수 있지만 최단 경로가 10홉을 넘는 호스트의 수를 매번 구한다.
난이도

보통10점 중 7점

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

문제

보이지 않는 대학(Unseen University)의 학장은 통신 체계를 현대화하기로 하고, 양방향으로 연결된 호스트들로 이루어진 컴퓨터 네트워크를 설치했다. 호스트에는 11번부터 hh번까지 차례로 번호가 매겨져 있다. 그런데 이 환경은 마법의 기운이 매우 강해서, 네트워크의 구조가 무작위로, 그리고 자주 바뀐다.

그래서 어떤 호스트에 도달할 수 있고 어떤 호스트에는 도달할 수 없는지를 아는 것이 매우 중요하다. 이러한 구조 변화는 네트워크에 영향을 주지 않고 관찰할 수 있으므로, 현재 네트워크의 상태는 언제든지 알 수 있다.

약속에 따라, 중심 호스트인 11번 호스트에서 1010번 이하의 홉(hop)으로 도달할 수 있는 호스트를 온라인(online) 이라고 부른다. 어떤 호스트는 11번에서 도달할 수는 있지만 온라인은 아닐 수 있는데, 이는 그 호스트로 이어지는 모든 경로의 길이가 1010홉보다 길기 때문이다. 학장은 이러한 호스트가 몇 개인지 알고 싶어 한다.

입력

첫째 줄에는 테스트 케이스의 개수를 나타내는 정수 하나가 주어진다. 각 테스트 케이스의 형식은 다음과 같다.

  • 호스트의 개수를 나타내는 정수 hh가 한 줄에 주어진다 (1≤h≤30001 \le h \le 3000).
  • 처음에 존재하는 연결의 개수를 나타내는 정수 cc가 한 줄에 주어진다 (1≤c≤15001 \le c \le 1500).
  • 이어서 cc개의 줄에 각각 두 정수 pp와 qq가 주어진다. 이는 처음에 호스트 pp와 qq 사이에 연결이 존재함을 뜻한다.
  • 연결 변경의 횟수를 나타내는 정수 ll이 한 줄에 주어진다 (1≤l≤15001 \le l \le 1500).
  • 이어서 ll개의 줄에 각각 두 정수 rr과 ss가 주어진다. 이는 호스트 rr과 ss 사이의 연결을 뒤집는다는 뜻이다. 즉, 현재 연결이 있으면 사라지고, 없으면 새로 생긴다.

마법의 환경 때문에 pp, qq, rr, ss에 대해 보장되는 것은 각각이 1…h1 \dots h 범위 안에 있다는 것뿐이다.

출력

각 테스트 케이스마다 한 줄에 정수 하나를 출력한다. 이는 11번 호스트에서 도달할 수 있지만 온라인은 아닌 호스트의 개수, 즉 11번 호스트로부터의 최단 경로 길이가 1010홉보다 긴 호스트의 개수이다.

예제1

  1. 예제 1

    입력
    2
    4
    4
    1 2
    2 3
    3 4
    4 1
    4
    1 3
    1 3
    2 3
    3 4
    12
    5
    10 11
    3 6
    9 8
    1 4
    4 7
    8
    11 3
    5 6
    7 10
    6 5
    5 9
    8 2
    5 6
    2 12
    
    예상 출력
    0
    1