DagDag구리

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

요약
모든 노드에서 도달 가능한 노드 E를 가진 무사이클 방향 그래프에서, E가 아닌 각 노드가 E로 가는 간선이 겹치지 않는 두 경로를 갖도록 추가할 최소 간선 수를 구한다.
난이도

어려움10점 중 9점

유형
그래프, 그리디, DFS, 완전 탐색
정답자
아직 제출이 없습니다

문제

NN개의 노드와 MM개의 간선으로 이루어진 사이클이 없는 방향 그래프 GG가 있다. GG에는 노드 EE가 존재하여, 모든 노드에서 EE에 도달 가능함이 보장된다.

이 그래프에 다음 조건을 만족하도록 두 정점을 연결하는 간선을 원하는 만큼 추가하려고 한다.

  • EE가 아닌 모든 노드 uu에 대해, uu에서 EE로 가는 두 개의 겹치지 않는 경로가 존재한다. 경로가 겹치지 않는다는 것은 같은 간선을 공유하지 않는다는 것을 말한다.

조건을 만족하기 위해 GG에 추가해야 하는 간선의 최소 개수를 구해보자.

입력

첫째 줄에 노드의 개수 NN과 간선의 개수 MM이 공백으로 구분되어 주어진다. (1≤N≤100,000;0≤M≤500,0001 \le N \le 100\\,000; 0\le M \le 500\\,000)

둘째 줄부터 MM개의 줄에 걸쳐 두 정수 uu, vv가 공백으로 구분되어 주어진다. 이는 노드 uu에서 노드 vv로 가는 간선이 있음을 의미한다. (1≤u,v≤N;u≠v1 \le u, v \le N; u \neq v)

동일한 노드 쌍에 여러 개의 간선이 존재할 수 있다. 주어지는 그래프에는 사이클이 없으며, 모든 노드에서 도달 가능한 노드가 존재함이 보장된다.

출력

첫째 줄에 조건을 만족하기 위해 추가해야 하는 간선의 최소 개수를 출력한다.

예제1

  1. 예제 1

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