- DP
- LCs
- ์นด์นด์ค2021
- ๋ค์ต์คํธ๋ผ
- BFS
- ๋นํธ๋ง์คํน
- ์์ฝ๋
- C++
- ํธ๋ฆฌ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- ๋นํธ๋งต
- ํ๋ฆฌ์จ๋ณด๋ฉ
- ์น๋ฆฐ์ด
- nestjs
- golang
- go
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- Union-Find
- Python
- DFS
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- ์ํฐ๋
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- ์ฌ๊ท
- ์ด๋ถํ์
- js
- ๋ฐฑ์ค
- ์๊ณ ๋ฆฌ์ฆ
- ์นด์นด์ค ์ฝํ
- Today
- Total
Hello Ocean! ๐ผ
[๋ฐฑ์ค/C++] 1238. ํํฐ ๋ณธ๋ฌธ
๋ฌธ์
ํ์ด
๋ชจ๋ ๋ง์ ์น๊ตฌ๋ค i (1~N)์ ๋ํด์
์๋ณต ๊ฑฐ๋ฆฌ = i ๋ถํฐ X๊น์ง์ ๊ฑฐ๋ฆฌ + X๋ถํฐ i๊น์ง์ ๊ฑฐ๋ฆฌ ๋ฅผ ๊ตฌํ ํ,
์๋ณต ๊ฑฐ๋ฆฌ์ ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ฉด ๋๋ ๋ฌธ์ ์ด๋ค.
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ์ฌ ๋ชจ๋ ๋ง์ ~ ๋ชจ๋ ๋ง์ ๊น์ง์ ์ต์๊ฐ์ ๊ตฌํ ํ
์๋ณต ๊ฑฐ๋ฆฌ์ ์ต๋๊ฐ์ ๊ตฌํ๋ฉด ๋๋ค.
์ฐ์ ์์ ํ๋ฅผ ์ด์ฉํ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ์ ๊ฝค๋ ์ต์ํด์ง ๊ฒ ๊ฐ๋ค.
๋ค๋ง, ์ ๋ ฅ์ ์ธ์ ๋ฆฌ์คํธ๋ก ๋ฐ์์ผ ํ๋ค๋ ์ฌ์ค์ ๊ธฐ์ตํด์ผ ํจ..!
+ fill()์ ์ด์ฉํด 2์ฐจ์ ๋ฐฐ์ด ์ฑ์ฐ๋๋ฐ, ์ธ๋ฑ์ค ์ซ์๋ฅผ ์๋ชป ์ ์ด์ ๋งค์ฐ ๊ณ ์ํ๋ค.
1001์นธ ์ง๋ฆฌ ๋ฐฐ์ด์ด๋ฉด ์ธ๋ฑ์ค๊ฐ 1000๊น์ง๋ผ๋๊ฑธ ๊ธฐ์ตํ์ ์ ๊น๋จน์๊ฑธ๊น..?
์ฝ๋
#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
#define INF 987654321
vector<pair<int, int>> adjs[1001];
int min_route[1001][1001];
int N, M, X;
void Dijkstra(int start) {
priority_queue<pair<int, int>> pq;
pq.push(make_pair(0, start));
min_route[start][start] = 0;
while (!pq.empty()) {
int cost = -pq.top().first;
int cur = pq.top().second;
pq.pop();
if (min_route[start][cur] < cost) continue;
for (int i = 0;i < adjs[cur].size();i++) {
int there = adjs[cur][i].first;
int new_cost = cost + adjs[cur][i].second;
if (new_cost < min_route[start][there]) {
min_route[start][there] = new_cost;
pq.push(make_pair(-new_cost,there));
}
}
}
}
int main(void) {
cin >> N >> M >> X;
for (int i = 0;i < M;i++) {
int start, end, cost;
cin >> start >> end >> cost;
adjs[start].push_back(make_pair(end, cost));
}
fill(&min_route[0][0], &min_route[1000][1001], INF);
for (int start = 1;start <= N;start++) {
Dijkstra(start);
}
int maxD = 0;
for (int start = 1;start <= N;start++) {
int cost = min_route[start][X] + min_route[X][start];
maxD = max(maxD, cost);
}
cout << maxD << endl;
return 0;
}
๊ฒฐ๊ณผ
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 16236.์๊ธฐ์์ด (0) | 2021.05.04 |
---|---|
[๋ฐฑ์ค/C++] 1987. ์ํ๋ฒณ (0) | 2021.05.04 |
[๋ฐฑ์ค/C++] 1915. ๊ฐ์ฅ ํฐ ์ ์ฌ๊ฐํ (0) | 2021.04.14 |
[๋ฐฑ์ค/C++] 1916. ์ต์๋น์ฉ ๊ตฌํ๊ธฐ (0) | 2021.04.14 |
[๋ฐฑ์ค/C++] 1937. ์์ฌ์์ด ํ๋ค (0) | 2021.04.06 |