시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 256 MB | 98 | 49 | 45 | 50.562% |
컴퓨터 과학에서 사용하는 그래프, 그중에서도 간선에 방향성이 없는 무향 그래프를 상상해보자. 이 중 어떤 그래프들은 특수한 성질을 가지고 있다. 예를 들어,
![]() |
![]() |
![]() |
![]() |
연결 그래프 | 포레스트 | 트리 | 전갈 그래프 |
그래프의 예시
이번 문제에서 우리는 전갈 그래프를 다루게 될 것이다. 전갈스러운 성질을 가지는 그래프를 전갈 그래프라고 부르며, ‘전갈스러운 성질’은 다음과 같이 정의된다.
전갈 그래프의 예
왜 컴퓨터 과학자들은 ‘전갈스럽다’는 그래프 성질을 발견하고 이름까지 붙였을까? 이는 이 성질이 가지는 독특함 때문이다. N × N 크기의 인접 행렬이 주어졌을 때, 자명하지 않은 대부분의 그래프 성질(연결 그래프, 트리, 포레스트, ...)을 판별하는 데에는, 입력을 제외하면 O(N2)의 시간이 필요하다. 하지만, 놀랍게도 어떤 그래프의 ‘전갈성’은, 간선의 개수에 상관없이, 항상 입력 제외 O(N)의 시간에 판별할 수 있는 알고리즘이 존재한다.
재현이는 전갈 그래프의 이러한 놀라운 성질에 감탄하여서, 여러분에게 순열 그래프라는 또 하나의 독특한 그래프를 주고, 이 그래프가 전갈스러운지를 판단하는 문제를 출제하였다. 순열 그래프란 무엇일까? 길이가 N인 순열 A1, A2, · · · , AN에 대해, 순열 A로 나타낸 순열 그래프는 아래와 같이 정의된다.
A = [2, 5, 4, 1, 3]으로 나타낸 순열 그래프
문제를 조금 더 어렵게 만들고 싶었던 재현이는, Q개의, 순열의 두 수를 교환하는 연산을 추가했다. 당신은, 교환 연산 이후의 순열 그래프 각각에 대해서 그 그래프가 전갈성을 띄는지 판별해야 한다. 교환 연산은 일시적이지 않으며, 이후 연산에 영향을 끼친다.
첫 번째 줄에 순열의 길이 N (4 ≤ N ≤ 100 000)이 주어진다.
두 번째 줄에 순열 A를 나타내는 서로 다른 N개의 자연수 A1, A2, ... , AN (1 ≤ Ai ≤ N)이 주어진다.
세 번째 줄에 교환 연산의 수 Q (1 ≤ Q ≤ 100 000)이 주어진다.
이후 Q개의 줄에는 교환 연산에 대한 정보가 주어진다. 각 줄에는 두 개의 자연수 x와 y (1 ≤ x, y ≤ N, x ≠ y)가 공백을 사이로 두고 주어지는데, 이는 순열 A의 x번째 원소 Ax와 y번째 원소 Ay의 값을 먼저 교환한 후, 순열 A로 나타낸 순열 그래프가 전갈 그래프인지 판별하여 출력하라는 의미이다.
각 교환 연산이 주어질 때마다, 교환 이후 순열 A로 나타낸 순열 그래프가 전갈 그래프라면 “YES
” (따옴표 제외)를, 그렇지 않다면 “NO
” (따옴표 제외)를 각 줄에 하나씩 출력한다.
4 1 3 2 4 2 1 3 2 4
NO YES
Contest > Coder's High > Coder's high 2016 Round 2: Nexon Arena G번