본문 바로가기

백준/그래프

키 순서 / 플로이드 와샬

728x90

www.acmicpc.net/problem/2458

 

2458번: 키 순서

1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여

www.acmicpc.net

#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

bool dp[501][501];

int main() {
	
	int n, m;

	cin >> n;
	cin >> m;

	int a, b;



	for (int i = 0; i < m; i++) {
		
		cin >> a;
		cin >> b;

		dp[a][b] = true;

	}

	int count = 0;
	for (int k = 1; k <= n; k++) {
		for (int i = 1; i <= n; i++) {
			for (int j = 1; j <= n; j++) {
			
				
				if (dp[i][k] == true && dp[k][j] == true)
				{
					dp[i][j] = true;
				//	count++;

				}
			
			}
		
		
		}

	
	}

	for (int i = 1; i <= n; i++) {
		bool toggle = false;
		for (int j = 1; j <= n; j++) {
		
			if (i != j) {
			
				if (dp[i][j] == false && dp[j][i]==false) { // true가 하나라도 있으면 관계성립 가능
					toggle = true;
					break;
				}

			}
		
		}
		if (toggle == false) { count++; }
	}

	cout << count << endl;


}

spacefordeveloper.tistory.com/197

 

순위 - 플로이드 와샬

플로이드 와샬 알고리즘으로 푸는 문제입니다. 다익스트라 알고리즘의 경우에는 하나의 정점에서 출발했을 때 다른 모든 정점으로의 최단 경로를 구하는 것입니다. 참고: spacefordeveloper.tistory.com

spacefordeveloper.tistory.com

이 문제와 비교해보기 

'백준 > 그래프' 카테고리의 다른 글

최단경로 -1753번  (0) 2021.08.25
이진검색트리 - 5639번 (java)  (0) 2021.08.11
트리의 부모찾기  (0) 2021.04.26