포럼
문제 USACO0708

모든 쌍 최단 경로

설명

무한한 2차원 평면을 빈틈없이 채우는 삼각형 영역들이 있다. 이 테셀레이션은 다음과 같이 정의된다 (이해를 돕기 위해 그림을 참고하라).

  • 오일러 공식에 따르면 실수 \(x\)에 대해 \(e^{ix}=\cos (x)+i\sin (x)\)이다. 먼저 모든 정수 \(x,y\)에 대해 복소평면 위의 \(x+y\exp(\pi i/3)\)에 정점을 그린다.
  • 그런 다음 위 단계의 정점 세 개가 한 변의 길이가 1인 정삼각형을 이루는 모든 경우에 대해, 그 경계를 이루는 간선들을 그린다. 추가로 삼각형의 중심에 정점을 그리고, 삼각형의 중심에서 바깥 정점 세 개 각각으로 가는 간선을 그린다.

\(N\) (\(2\le N\le 2\cdot 10^5\))개의 입력 점이 주어지며, 각 점은 어떤 영역의 엄격한 내부에 있다 (즉, 어떤 정점이나 간선 위에도 있지 않다). 입력 점들의 임의의 쌍에 대해, 한 점에서 다른 점으로 어떤 정점도 지나지 않는 경로를 그릴 때 가로지르는 간선 수의 최솟값을 두 점 사이의 거리로 정의한다.

입력 점들 사이의 모든 \(N(N-1)/2\)개의 쌍별 거리의 합을 출력하시오.

문제 제공: Benjamin Qi

제약

채점 방식

  • 입력 2-5: \(N\le 10\), \(0\le x,y<5\)
  • 입력 6-13: \(N\le 10\)
  • 입력 14-21: \(T=1\)

문제 제공: Benjamin Qi

입력 형식

첫째 줄에 독립적인 테스트의 수 \(T\) (\(T\ge 1\))가 주어진다. 각 테스트는 다음과 같이 주어진다.

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

다음 \(N\)개의 줄 각각에 세 정수 \(x\), \(y\), \(z\) (\(0\le x,y<10^6, 0\le z<12\))가 주어지며, 이는 복소평면 위의 점 \(x+y\exp(\pi i/3)+ \epsilon\cdot \exp((1+2z)\pi i/12)\)를 나타낸다 (\(\epsilon\)은 작은 양수이다).

모든 테스트에 대한 \(N\)의 합은 \(2\cdot 10^5\)를 넘지 않음이 보장된다.

출력 형식

각 테스트마다 모든 \(N(N-1)/2\)개의 쌍별 거리의 합을 한 줄에 출력한다.

예제 1
입력
6
2
0 0 0
0 0 0
2
0 0 0
1 1 7
2
0 0 0
0 0 6
3
0 0 1
0 0 5
0 0 9
2
0 2 11
1 1 1
2
2 0 11
1 1 1
출력
0
3
6
12
2
6
설명

The second test is illustrated below:

  • The vertex at \(x+y\exp(\pi i/3)\) is labeled with \((x,y)\) for each \(x\in[-1,2], y\in[-1,2]\).
  • Dots are drawn at the vertices mentioned above as well as the vertices that are the centers of each equilateral triangle.
  • The triangular region containing \((x,y,z)=(0,0,0)\) is highlighted in green.
  • The triangular region containing \((x,y,z)=(1,1,7)\) is highlighted in blue. Note that \(15\pi/12=225^{\circ}\).
  • An example path from the first region to the second crossing three edges is drawn.

문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2025-2026 > Third Contest > Platinum

태그

평가 및 의견

All Pairs Shortest Paths

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

Log in to rate problems.

개별 의견

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

풀이 제출

All Pairs Shortest Paths

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