티스토리 뷰
1967번: 트리의 지름
파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연
www.acmicpc.net
백준 소스코드 [C++] 1967 트리의 지름
#include <iostream>
#include <algorithm>
#include <queue>
#include <string.h>
#include <limits.h>
#include <vector>
#include <math.h>
#include <stack>
#include <bitset>
#include <string>
#include <set>
#define all(v) v.begin(), v.end()
#define pii pair<int,int>
#define make_unique(v) v.erase(unique(v.begin(), v.end()), v.end())
typedef long long ll;
using namespace std;
vector<pii> v[10001];
int res[10001];
int sum[10001];
void dfs(int n) {
if (v[n].size() == 0) {
res[n] = 0;
sum[n] = 0;
return;
}
else if (v[n].size() == 1) {
dfs(v[n][0].first);
res[n] = v[n][0].second + sum[v[n][0].first];
sum[n] = v[n][0].second + sum[v[n][0].first];
}
else {
int k = v[n].size();
for(int i=0;i<k;i++)
dfs(v[n][i].first);
vector<int>w;
w.clear();
for (int i = 0;i < k;i++)
w.push_back(v[n][i].second + sum[v[n][i].first]);
sort(all(w));
res[n] = w[k - 1] + w[k - 2];
sum[n] = w[k - 1];
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n, a, b, c;
cin >> n;
for (int i = 1;i < n;i++) {
cin >> a >> b >> c;
v[a].push_back({ b,c });
}
dfs(1);
int m = INT_MIN;
for (int i = 1;i <= n;i++) {
if (m < res[i]) m = res[i];
}
cout << m;
return 0;
}
'백준' 카테고리의 다른 글
백준 소스코드 [C++] 2638 치즈 (0) | 2021.01.05 |
---|---|
백준 소스코드 [C++] 1167 트리의 지름 (0) | 2021.01.05 |
백준 소스코드 [C++] 1149 RGB거리 (0) | 2021.01.04 |
백준 소스코드 [C++] 5639 이진 검색 트리 (0) | 2021.01.04 |
백준 소스코드 [C++] 16953 A->B (0) | 2021.01.04 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 부스트캠프 6기
- CompositionalLayout
- 네트워크 유량
- rxswift
- State Restoration
- 컴퓨터 추상화
- 최단경로 문제
- CPU와 Memory
- 다익스트라 시간복잡도
- 벨만포드 시간복잡도
- WWDC17
- observeOn
- 포드 풀커슨 알고리즘
- 최단경로 알고리즘
- HIG
- IOS
- 에드몬드 카프 알고리즘
- Testable
- MeTal
- 벨만포드 알고리즘
- 최단경로문제
- WWDC16
- WWDC19
- 최대 매칭
- 강한 순환 참조
- WWDC21
- 네트워크 플로우
- mach-o
- 코딩대회
- test coverage
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함