본문 바로가기
코딩 자산관리/Coding Test

[Good Bye, BOJ 2020!]C.양분(미완성)

by 은행장 노씨 2021. 1. 3.

이마 탁!

 

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

 

20530번: 양분

첫째 줄에 두 자연수 $N$, $Q$가 주어진다. 주어지는 그래프의 정점과 간선의 개수가 $N$개이며 쿼리가 $Q$개 주어진다는 것을 의미한다. 둘째 줄부터 $N$개의 줄에는 $i$번 간선이 연결하는 두 정점

www.acmicpc.net

 

 

 

1. 트리에서 쿼리는 1이다.
2. 트리에서 간선 하나만 추가되었다.
3. 나올 수 있는 경우는 1 아니면 2이다. 
-> 사이클을 알아내서 그 간선을 지나간다면 2 아니면 1 출력한다.

그래프로 입력을 받을 때, 도착 노드에 1씩 더해 준다.(그래프에 방향이 있다고 생각한다.)

그렇게 한다면 루트와 사이클 도착점을 알 수 있었다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
n, q = map(int, input().split())
field = {}
nums = [0 for _ in range(n + 1)]
 
for _ in range(n):
    a,b = map(int, input().split())
    nums[b] += 1
    if a not in field:
        field[a] = [b]
    elif b not in field[a]:
        field[a].append(b)
 
nums[0= 1
root = nums.index(min(nums))
cycle = nums.index(max(nums))

근데 이 이상을 더 할 수 없었다. 내가 좀 더 성장해서 꼭 풀고 말겠다!

확실히 교내에서 하는 대회보다 난이도가 높았다. 

공부를 열심히 해서 올해는 꼭 4문제를 풀어야겠다. 문제마다 1등으로 풀면 상품을 주는데  노오오오력해 봐야겠다.