개인적인 난이도
안풀어도되는데굳이고민중
안풀어도되고 난이도도 어렵고
백준 골드따리가 건들필요도 없고
풀어도 도움 안 될 거 같은 문제인데
수학 대학원에서 그래프를 공부중인 (ps는 해본적 없는)친구가 갑자기 문제랑 아이디어를 주길래 고민중이다
이런 문제는 친구네 업계에선 안 어려운 문제라고 함
아이디어가 어려운 문제라면 구현은 쉽지 않을까? 라고 생각해서 도전해보려고 한다
그냥 해본 추측
- 쿼리가 엮였으니까 세그먼트 트리를 쓰지 않을까
- 시간내에 안되면 어려운 최적화가 필요하지 않을까
- 백트래킹으론 안풀리는 문제인가
친구 말 요약
- 트리 위에서 A에서 B로 순차적으로 돌을 옮기는 게 가능한지를 묻고 있음
- 아무거나 루트를 하나 잡고 리프를 레벨 0이라고 하면
- A에서 가장 레벨이 낮은 B의 점으로 갈 수 있는지를 체크하면 된다
- 레코드를 모든 방식에 대해서 만들어야 하는지는 나도 모르겠다
- 이런 문제를 Graph reconfiguration이라고 함
- 그래프가 V,E로 주어져있으면, A와 B는 V의 부분집합으로 주어진 정보이고, 이 문제에선 V가 주어졌다
- 루트는 그냥 아무거나 잡고 해라
- 아니면, A랑 B가 있을때 A에서 B와 가장 가까운 점을 잡고 B에서 가장 깊은 점으로 가는걸 테스트해라
- NP hard나 그보다 어려울것이다
이걸 풀 수 있을지는 모르겠으나 세그먼트 트리 공부 후 트리와 쿼리를 처리하는 문제를 좀 풀어본 뒤 시도해보겠다
'C++ > 문제풀이 기록' 카테고리의 다른 글
[BOJ 27231, 약간 어려움] 2023년이 기대되는 이유 (C++) (0) | 2023.01.16 |
---|---|
[BOJ 7662, 어려움] 이중 우선순위 큐 (C++) (0) | 2023.01.11 |
[BOJ 5893, 약간 쉬움] 17배 (C++) (0) | 2023.01.05 |
[BOJ 24525, 어려움] SKK문자열 (C++) (0) | 2023.01.04 |
[BOJ 1655, 쉬움] 가운데를 말해요 (C++) (0) | 2023.01.04 |