티스토리 뷰

 

 

11265번: 끝나지 않는 파티

입력의 첫 번째 줄에는 파티장의 크기 N(5 ≤ N ≤ 500)과 서비스를 요청한 손님의 수 M(1 ≤ M ≤ 10,000) 이 주어진다. 각각의 파티장은 1번부터 N번까지 번호가 붙여져 있다. 다음에는 N개의 줄에 걸

www.acmicpc.net

 

문제풀이

 

플로이드 와샬에 대한 자세한 내용은 아래 포스팅을 참고해주세요:)

 

플로이드 와샬 알고리즘(Floyd Warshall Algorithm)

플로이드 와샬 알고리즘이란? '모든 정점'에서 '모든 정점'으로의 최단 경로를 구하는 알고리즘 다익스트라 알고리즘과의 차이점 다익스트라는 하나의 정점에서 다른 모든 정점까지의 최단 경

woojeenow.tistory.com

 

 

플로이드 와샬 알고리즘으로 각 파티장끼리의 최소 이동 시간을 구한다.

정점 s에서 e로 시간 내에 다른 파티장으로 이동할 수 있으면 이동, 그렇지 않으면 이동하지 않는다.

 

 

C++ 코드

 

#include <iostream>
#define MAX 501
using namespace std;
int d[MAX][MAX];
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
cin >> d[i][j];
}
}
// 플로이드 와샬
for (int k = 1; k <= n; k++) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (d[i][k] + d[k][j] < d[i][j])
d[i][j] = d[i][k] + d[k][j];
}
}
}
while (m--) {
int s, e, t;
cin >> s >> e >> t;
if (d[s][e] <= t)
cout << "Enjoy other party\n";
else
cout << "Stay here\n";
}
return 0;
}

'Problem Solving > BOJ' 카테고리의 다른 글

[BOJ 7576] 토마토 C++/Kotlin  (0) 2021.08.12
[BOJ 17298] 오큰수 C++/Kotlin  (0) 2021.07.30
[BOJ 10026] 적록색약 C++  (0) 2021.07.26
[BOJ 10711] 모래성 C++  (0) 2021.07.26
[BOJ 2473] 세 용액 C++  (2) 2021.07.22
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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 29 30
글 보관함