4-사이클 (쉬움)
면접 대비시간 제한2초메모리 제한1024 MB
정점 1000개, 간선 1000개 이하의 단순 무향 그래프에서 길이가 4인 서로 다른 단순 사이클의 개수를 10^9+7로 나눈 나머지로 구합니다.
문제
개의 정점과 개의 무방향 간선으로 이루어진 단순 그래프 가 주어진다. 단순 그래프는 두 정점 사이에 간선이 최대 개 존재하며, 모든 간선이 서로 다른 두 정점을 연결하는 그래프이다. 의 정점들은 이하의 양의 정수로 번호가 매겨져 있다.
에서 길이가 인 단순 사이클은 다음 조건을 만족하는 정점의 수열 로 정의된다.
- 모든 인 에 대해 와 을 연결하는 간선이 에 존재한다.
- 모든 인 에 대해 이고, 이다.
다음 연산을 이용해 두 단순 사이클이 서로 변환 가능하면, 같은 사이클로 본다.
- 수열을 뒤집는다. 즉, 을 로 바꾼다.
- 수열의 두 번째 원소를 맨 뒤에 추가하고 첫 번째 원소를 삭제한다. 즉, 을 로 바꾼다.
예를 들어, 단순 사이클 과 는 같은 단순 사이클이다. 에서 길이가 인 서로 다른 단순 사이클의 개수를 구한다.
입력
첫 번째 줄에 그래프 의 정점의 개수 ()과 간선의 개수 ()이 공백으로 구분되어 주어진다.
두 번째 줄부터 개의 줄에 걸쳐 의 간선을 이루는 서로 다른 두 정점 , ()가 공백으로 구분되어 주어진다.
간선이 중복으로 들어오지 않음이 보장된다.
출력
에서 길이가 인 서로 다른 단순 사이클의 개수를 로 나눈 나머지를 출력한다.
단, 은 소수이다.