Notice
Recent Posts
Link
정화 코딩
[C++] △ (백준 27966번) 본문
https://www.acmicpc.net/problem/27966
#include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
long long n;
cin >> n;
long long ans = (n - 1) + (n - 1) * (n - 2);
cout << ans << '\n';
for (int i = 2; i < n + 1; i++) {
cout << 1 << ' ' << i << '\n';
}
}
모든 정점 쌍에 대해서 두 정점 사이 거리의 합이 최소가 되도록 하기 위해서는 하나의 정점을 중심에 두고 나머지 모든 정점을 그 중심 정점에 연결하도록 트리를 구성하면 된다. 이 사실만 알면 쉽게 풀 수 있었던 문제. 아 long long으로 해야 함! (AC)
'PS' 카테고리의 다른 글
[C++] 1 빼기 (백준 25709번) (0) | 2025.04.02 |
---|---|
[C++] 사전 순 최대 공통 부분 수열 (0) | 2025.03.30 |
[C++] 초콜릿과 11과 팰린드롬 (백준 31460번) (0) | 2025.03.24 |
[C++] 포항항 (백준 23817번) (0) | 2025.03.22 |
[C++] Σ (백준 13172번) (0) | 2025.03.22 |
Comments