- golang
- ํ๋ก๊ทธ๋๋จธ์ค
- C++
- ๋นํธ๋ง์คํน
- Python
- ์นด์นด์ค ์ฝํ
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- ํ๋ฆฌ์จ๋ณด๋ฉ
- DP
- ์น๋ฆฐ์ด
- ๋นํธ๋งต
- ๋ฐฑ์ค
- ์์ฝ๋
- ํธ๋ฆฌ
- LCs
- DFS
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- go
- ์นด์นด์ค2021
- ์ด๋ถํ์
- BFS
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- ์๊ณ ๋ฆฌ์ฆ
- ์ฌ๊ท
- ์ํฐ๋
- ๋ค์ต์คํธ๋ผ
- js
- nestjs
- Union-Find
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- Today
- Total
Hello Ocean! ๐ผ
[๋ฐฑ์ค/C++] 17182. ์ฐ์ฃผ ํ์ฌ์ ๋ณธ๋ฌธ
๋ฌธ์
https://www.acmicpc.net/problem/17182
17182๋ฒ: ์ฐ์ฃผ ํ์ฌ์
์ฐ์ฃผ ํ์ฌ์ anaํธ๋ ์ด๋ค ํ์ฑ๊ณ๋ฅผ ํ์ฌํ๊ธฐ ์ํด ๋ฐ์ฌ๋๋ค. ๋ชจ๋ ํ์ฑ์ ํ์ฌํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์ต์ ์๊ฐ์ ๊ณ์ฐํ๋ ค ํ๋ค. ์ ๋ ฅ์ผ๋ก๋ anaํธ๊ฐ ํ์ํ ํ์ฑ์ ๊ฐ์์ anaํธ๊ฐ ๋ฐ์ฌ๋๋ ํ์ฑ์ ์
www.acmicpc.net
์์ฝ :
๋ชจ๋ ํ์ฑ์ ํ์ฌํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์ต์ ์๊ฐ์ ๊ณ์ฐํ์ฌ๋ผ.
ํ์ฌ ํ ๋ค์ ์์ ํ์ฑ์ผ๋ก ๋์์ฌ ํ์๋ ์์ผ๋ฉฐ ์ด๋ฏธ ๋ฐฉ๋ฌธํ ํ์ฑ๋ ์ค๋ณตํด์ ๊ฐ ์ ์๋ค.
ํ์ด
DFS๋ก ์ ํด์ง ์์์ ์ผ๋ก๋ถํฐ ๋ชจ๋ ํ์ฑ์ ๋ฐฉ๋ฌธํ๋๋ฐ ๋๋ ์ต์ ์๊ฐ์ ๊ตฌํด์ผ ํ๋๋ฐ, ๊ทธ ์ ์
์ ๋ ฅ๋ ๊ฐ์ ๋ค์ ์ด์ฉํด์ ๋ชจ๋ ๋ ธ๋ - ๋ชจ๋ ๋ ธ๋ ๊ฐ์ ์ต์ ๊ฑฐ๋ฆฌ์ 2์ฐจ์ ๋ฐฐ์ด์ ๊ตฌํด๋๊ณ ์์ํด์ผ ํ๋ค.
์ต์ ๊ฑฐ๋ฆฌ 2์ฐจ์ ๋ฐฐ์ด์ ์ฑ์ฐ๋ ๋ฐ์๋ ํ๋ก์ด๋ ์์ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ์๋ค.
ํ๋ก์ด๋ ์์ฌ์ด O(V^3) ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋๋ฐ, ์ด ๋ฌธ์ ์์ V ์ต๋ ๊ฐ์๊ฐ 10์ด๊ธฐ ๋๋ฌธ์ ๋ถ๋ด์์ด ์ฌ์ฉํ ์ ์์๋ค.
์ฝ๋
#include <cstdio>
#include <algorithm>
#define sc scanf_s
#define MAX 987654321
using namespace std;
int N, K;
int dist[10][10]; // maxN: 10
bool visited[10];
int result = MAX;
void DFS(int start, int d, int visitCount) {
if (result < d) return;
if (visitCount == N) {
result = min(result, d); return;
}
for (int i = 0;i < N;i++) {
if (visited[i]) continue;
visited[i] = 1;
DFS(i, d + dist[start][i], visitCount + 1);
visited[i] = 0;
}
}
int main() {
sc("%d %d", &N, &K);
for (int i = 0;i < N;i++)
for (int j = 0;j < N;j++)
sc("%d", &dist[i][j]);
// ํ๋ก์ด๋ ์์ฌ
for (int k = 0;k < N;k++) {
for (int i = 0;i < N;i++) {
for (int j = 0;j < N;j++) {
dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);
}
}
}
// ๋ชจ๋ ํ์ฑ์ ํ์ฌํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์ต์ ์๊ฐ ์ฐพ๊ธฐ
visited[K] = 1;
DFS(K, 0, 1);
printf("%d\n", result);
return 0;
}
๊ฒฐ๊ณผ

'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 1941. ์๋ฌธ๋ ์น ๊ณต์ฃผ (0) | 2021.08.24 |
---|---|
[๋ฐฑ์ค/C++] 1405. ๋ฏธ์น ๋ก๋ด (0) | 2021.08.17 |
[๋ฐฑ์ค/C++] 1062. ๊ฐ๋ฅด์นจ (0) | 2021.08.10 |
[๋ฐฑ์ค/C++] 18119. ๋จ์ด ์๊ธฐ (0) | 2021.08.10 |
[C++/๋ฐฑ์ค] 17244. ์๋ง๋ค์ฐ์ฐ (0) | 2021.08.03 |