일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- back propagation
- 조합론
- tensorflow
- BFS
- 문자열
- lazy propagation
- 이분 탐색
- Overfitting
- 2023
- NEXT
- DP
- dfs
- 회고록
- pytorch
- 미래는_현재와_과거로
- 가끔은_말로
- dropout
- c++
- 백트래킹
- 크루스칼
- 너비 우선 탐색
- 다익스트라
- 분할 정복
- 세그먼트 트리
- object detection
- 우선 순위 큐
- 알고리즘
- 자바스크립트
- 가끔은 말로
- 플로이드 와샬
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 |