본문 바로가기

알고리즘73

백준 2252번 : 줄 세우기 문제 링크 : www.acmicpc.net/problem/2252 내 풀이(2021.2.10.) : 위상 정렬 #include #include #include using namespace std; int N, M; int indegree[32001]; vector pointing[32001]; vector ordered; void topology_sort() { queue q; for (int i = 1; i > N >> M; for (int i = 0; i > a >> b; pointing[a].push_back(b); indegree[b]++; } topology_sort(); for (int i = 0; i < ordered.size(); i++) {.. 2021. 2. 10.
백준 1647번 : 도시 분할 계획 문제 링크 : www.acmicpc.net/problem/1647 내 풀이(2021.2.6.) : 최소 신장 트리 #include #include #include using namespace std; typedef tuple tp; priority_queue pq; int p[100001]; int find(int n) { if (p[n] != n) p[n] = find(p[n]); return p[n]; } void union_(int a, int b) { a = find(a); b = find(b); if (a < b) p[b] = a; else p[a] = b; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL.. 2021. 2. 6.
백준 1717번 : 집합의 표현 문제 링크 : www.acmicpc.net/problem/1717 내 풀이(2021.2.4.) : 유니언 파인드 #include using namespace std; int parent[1000001]; int find(int x) { if (parent[x] != x) parent[x] = find(parent[x]); return parent[x]; } void union_(int a, int b) { a = find(a); b = find(b); if (a k >> a >> b; if (.. 2021. 2. 4.
백준 2565번 : 전깃줄 문제 링크 : www.acmicpc.net/problem/2565 풀이에 참고한 링크 : www.acmicpc.net/board/view/8218 내 풀이(2021.2.3.) : DP #include #include #include using namespace std; vector p; vector v; vector dp(500, 1); int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; for (int i = 0; i > a >> b; p.push_back(make_pair(a, b)); } sort(p.begin(), p.end()); .. 2021. 2. 3.