λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ”₯ PS(Problem Solving) πŸ”₯/BOJ

[BOJ] #2644 μ΄Œμˆ˜κ³„μ‚°

by dar0m! 2019. 9. 4.
μ‹œκ°„ μ œν•œ λ©”λͺ¨λ¦¬ μ œν•œ μ •λ‹΅ λΉ„μœ¨
1 초 128 MB 44.604 %

 

 

2644번: μ΄Œμˆ˜κ³„μ‚°

μ‚¬λžŒλ“€μ€ 1, 2, 3, …, n (1≤n≤100)의 μ—°μ†λœ 번호둜 각각 ν‘œμ‹œλœλ‹€. μž…λ ₯ 파일의 첫째 μ€„μ—λŠ” 전체 μ‚¬λžŒμ˜ 수 n이 주어지고, λ‘˜μ§Έ μ€„μ—λŠ” 촌수λ₯Ό 계산해야 ν•˜λŠ” μ„œλ‘œ λ‹€λ₯Έ 두 μ‚¬λžŒμ˜ λ²ˆν˜Έκ°€ 주어진닀. 그리고 μ…‹μ§Έ μ€„μ—λŠ” λΆ€λͺ¨ μžμ‹λ“€ κ°„μ˜ κ΄€κ³„μ˜ 개수 m이 주어진닀. λ„·μ§Έ μ€„λΆ€ν„°λŠ” λΆ€λͺ¨ μžμ‹κ°„μ˜ 관계λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 두 번호 x,yκ°€ 각 쀄에 λ‚˜μ˜¨λ‹€. μ΄λ•Œ μ•žμ— λ‚˜μ˜€λŠ” 번호 xλŠ” 뒀에 λ‚˜μ˜€λŠ” μ •μˆ˜ y의 λΆ€λͺ¨ 번호λ₯Ό λ‚˜νƒ€λ‚Έλ‹€. 각 μ‚¬λžŒμ˜ λΆ€λͺ¨λŠ” μ΅œλŒ€

www.acmicpc.net

전체 μ‚¬λžŒ 수 n, 촌수λ₯Ό 계산해야 ν•˜λŠ” μ„œλ‘œ λ‹€λ₯Έ μ‚¬λžŒμ˜ 번호 x, y κ΄€κ³„μ˜ 수 m 이 주어지면 μ•„λž˜μ˜ m개의 쀄에 λΆ€λͺ¨-μžμ‹ 관계λ₯Ό λ‚˜νƒ€λ‚΄λŠ” a,bκ°€ 주어진닀.

m개의 쀄에 ν•΄λ‹Ήν•˜λŠ” 관계에 λ”°λΌμ„œ vector 둜 2차원 배열을 ν˜•μ„±ν•˜κ³  bfsλ₯Ό ν™œμš©ν•˜μ—¬ 문제λ₯Ό ν•΄κ²°ν•˜μ˜€λ‹€.

 

λ©”λͺ¨λ¦¬ μ‹œκ°„
1988 KB 0 ms
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
32
33
34
35
36
37
38
39
40
41
42
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<vector>
#include<queue>
using namespace std;
typedef pair<intint> p;
 
int n, m, x, y;
vector<vector<int>> v;
queue<p> q;
int chk[101];
 
int main() {
    scanf("%d %d %d %d"&n, &x, &y, &m);
    v.resize(n * m);
    for (int i = 0, a, b; i < m; i++) {
        scanf("%d %d"&a, &b);
        v[a].push_back(b);
        v[b].push_back(a);
    }
    q.push({ x,0 });
    while (!q.empty()) {
        int pnum = q.front().first;
        int pcnt = q.front().second;
        q.pop();
        if (pnum == y) {
            printf("%d", pcnt);
            return 0;
        }
 
        for (auto e : v[pnum]) {
            if (!chk[e]) {
                chk[e] = 1;
                q.push({ e, pcnt + 1 });
            }
        }
    }
    printf("-1");
    return 0;
}
cs

 

'πŸ”₯ PS(Problem Solving) πŸ”₯ > BOJ' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[BOJ] #1541 μžƒμ–΄λ²„λ¦° κ΄„ν˜Έ  (0) 2019.09.04
[BOJ] #2573 λΉ™μ‚°  (0) 2019.09.04
[BOJ] #2667 λ‹¨μ§€λ²ˆν˜ΈλΆ™μ΄κΈ°  (0) 2019.09.04
[BOJ] #6603 둜또  (0) 2019.09.04
[BOJ] #14502 μ—°κ΅¬μ†Œ  (0) 2019.09.04

λŒ“κΈ€