포럼
문제 USACO0479

순열

설명

베시는 2차원 격자 위에 서로 다른 \(N\) (\(3\le N\le 40\))개의 좋아하는 점을 가지고 있으며, 어떤 세 점도 한 직선 위에 있지 않다. 각 \(1\le i\le N\)에 대해 \(i\)번째 점은 두 정수 \(x_i\)\(y_i\) (\(0\le x_i,y_i\le 10^4\))로 나타낸다.

베시는 다음과 같은 방법으로 점들 사이에 선분을 그린다.

  1. \(N\)개의 점의 순열 \(p_1,p_2,\ldots,p_N\)을 하나 선택한다.
  2. \(p_1\)\(p_2\), \(p_2\)\(p_3\), \(p_3\)\(p_1\) 사이에 선분을 그린다.
  3. 그 다음, 정수 \(i\)\(4\)부터 \(N\)까지 순서대로 보면서, 새 선분이 이전에 그린 어떤 선분과도 (끝점을 제외하고) 교차하지 않는 모든 \(j에 대해 \(p_i\)\(p_j\)를 잇는 선분을 그린다.

베시는 각 \(i\)마다 정확히 세 개의 새로운 선분을 그렸다는 것을 알아차렸다. 이 성질이 성립하도록 1단계에서 베시가 선택할 수 있었던 순열의 개수를 \(10^9+7\)로 나눈 나머지를 구하시오.

출제자: Benjamin Qi

제약

채점 방식

  • 테스트 케이스 1-6은 \(N\le 8\)을 만족한다.
  • 테스트 케이스 7-20은 추가 제약이 없다.

출제자: Benjamin Qi

입력 형식

첫째 줄에 \(N\)이 주어진다.

다음 \(N\)개의 줄에 걸쳐 각 줄에 공백으로 구분된 두 정수 \(x_i\)\(y_i\)가 주어진다.

출력 형식

순열의 개수를 \(10^9+7\)로 나눈 나머지를 출력한다.

예제 1
입력
4
0 0
0 4
1 1
1 2
출력
0
설명

No permutations work.

예제 2
입력
4
0 0
0 4
4 0
1 1
출력
24
설명

All permutations work.

예제 3
입력
5
0 0
0 4
4 0
1 1
1 2
출력
96
설명

One permutation that satisfies the property is \((0,0),(0,4),(4,0),(1,2),(1,1).\)
For this permutation,

  • First, she draws segments between every pair of \((0,0),(0,4),\) and \((4,0)\).
  • Then she draws segments from \((0,0),\) \((0,4),\) and \((4,0)\) to \((1,2)\).
  • Finally, she draws segments from \((1,2),\) \((4,0),\) and \((0,0)\) to \((1,1)\).

Diagram:

The permutation does not satisfy the property if its first four points are
\((0,0)\), \((1,1)\), \((1,2)\), and \((0,4)\) in some order.

문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2020-2021 > US Open > Gold

태그

평가 및 의견

Permutation

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Permutation

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8