일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 조합론
- lazy propagation
- pytorch
- c++
- 크루스칼
- 너비 우선 탐색
- object detection
- NEXT
- 분할 정복
- 가끔은 말로
- dropout
- dfs
- tensorflow
- 다익스트라
- 2023
- 백트래킹
- 알고리즘
- Overfitting
- DP
- 회고록
- 문자열
- 우선 순위 큐
- 플로이드 와샬
- back propagation
- 세그먼트 트리
- 자바스크립트
- BFS
- 이분 탐색
- 가끔은_말로
- 미래는_현재와_과거로
Archives
- Today
- Total
Doby's Lab
[알고리즘] 백준 15723번: n단 논법 (C++) 본문
https://www.acmicpc.net/problem/15723
이번 문제의 포인트는 플로이드 와샬과 문자열을 변환시키는 일이었다.
n단 논법에 따라 a가 b라고 해서 b는 a가 되는 것은 아님을 알고 단방향 그래프로 표현해준다.
문자열은 getline을 썼고, n이나 m을 입력받고서는 버퍼에 '\n'가 남아있기 때문에 cin.ignore()을 해준다.
#include <iostream>
#include <string>
#define MAX (26 + 1)
#define INF 987654321
using namespace std;
int graph[MAX][MAX];
int n, m;
void floydWarshall() {
for (int k = 1; k < MAX; k++) {
for (int i = 1; i < MAX; i++) {
for (int j = 1; j < MAX; j++) {
if (i == j) continue;
if (graph[i][k] == INF || graph[k][j] == INF) continue;
if (graph[i][k] + graph[k][j] < graph[i][j]) {
graph[i][j] = graph[i][k] + graph[k][j];
}
}
}
}
}
int main() {
cin >> n;
for (int i = 1; i <= 26; i++) {
for (int j = 1; j <= 26; j++) {
if (i == j) continue;
graph[i][j] = INF;
}
}
cin.ignore();
for (int i = 0; i < n; i++) {
string value;
getline(cin, value, '\n');
int s = value.front() - 96;
int e = value.back() - 96;
//cout << s << ' ' << e << '\n';
graph[s][e] = 1;
}
floydWarshall();
cin >> m;
cin.ignore();
for (int i = 0; i < m; i++) {
string value;
getline(cin, value, '\n');
int s = value.front() - 96;
int e = value.back() - 96;
if (graph[s][e] == INF) cout << 'F' << '\n';
else cout << 'T' << '\n';
}
return 0;
}
728x90
'PS > BOJ' 카테고리의 다른 글
[알고리즘] 백준 11437번: LCA (C++), 최소 공통 조상 (0) | 2021.12.13 |
---|---|
[자료구조] 백준 16975번: 수열과 쿼리 21 (C++) (0) | 2021.12.12 |
[알고리즘] 백준 10610번: 30 (C++), 3의 배수 (0) | 2021.12.11 |
[자료구조] 백준 14438번: 수열과 쿼리 17 (C++) (0) | 2021.12.11 |
[자료구조] 백준 14428번: 수열과 쿼리 16 (C++), 인덱스 세그 트리 (0) | 2021.12.11 |