백준 알고리즘(C++)

백준 1325번 효율적인 해킹 ( C++ )

coding232624 2024. 3. 28. 12:49

문제

https://www.acmicpc.net/problem/1325

 

1325번: 효율적인 해킹

첫째 줄에, N과 M이 들어온다. N은 10,000보다 작거나 같은 자연수, M은 100,000보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에 신뢰하는 관계가 A B와 같은 형식으로 들어오며, "A가 B를 신뢰한

www.acmicpc.net

 

해설

dfs/bfs둘가 구현가능한 문제

실수만 안하면 어렵지 않은 문제

코드

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
43
44
45
46
47
48
49
#include <bits/stdc++.h>
using namespace std;
int n, m, mn, visited[10004], tmp, a, b;
vector<int> v[10004];
vector<int> ret;
int dfs(int c)
{
  visited[c] = 1;
  int cnt = 1;
  for (int i : v[c])
  {
    if (!visited[i])
      cnt += dfs(i);
  }
  return cnt;
}
 
int main()
{
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
 
  cin >> n >> m;
  for (int i = 0; i < m; i++)
  {
    cin >> a >> b;
    v[b].push_back(a);
  }
 
  for (int i = 1; i <= n; i++)
  {
    fill(&visited[0], &visited[0+ 100040);
    tmp = dfs(i);
    if (tmp > mn)
    {
      mn = tmp;
      ret.clear();
      ret.push_back(i);
    }
    else if (tmp == mn)
    {
      mn = tmp;
      ret.push_back(i);
    }
  }
  for (int i : ret)
    cout << i << " ";
}
cs

 

'백준 알고리즘(C++)' 카테고리의 다른 글

백준 15686번 치킨 배달 ( C++ )  (0) 2024.03.29
백준 17298번 오큰수 ( C++ )  (0) 2024.03.28
백준 1068번 트리 ( C++ )  (0) 2024.03.28
백준 2636번 치즈 ( C++ )  (0) 2024.03.28
백준 14502번 연구소 ( C++ )  (0) 2024.03.26