티스토리 뷰

문제

BOJ 1739 도로 정비하기

klimmek55 2019. 1. 13. 23:11

도로 정비하기
(http://boj.kr/1739)


각 가로도로와 세로도로를 하나의 변수로 생각한다.
\(i\)번 가로도로를 \(W_i\), \(i\)번 세로도로를 \(H_i\)라고 할 때,
이 도로들이 가질 수 있는 방향은 두 가지이므로 참과 거짓의 불리언 값을 가진다고 생각할 수 있다.

버스가 \((W_i,H_i)\)에서 \((W_j,H_j)\)로 운행한다 했을 때,
가장 간단한 경우인 \(W_i<W_j\)면서 \(H_i<H_j\)일 때를 보자.
변수가 참일 때 오른쪽 또는 아래, 거짓일 때 왼쪽 또는 위로 향한다고 해보자.
그러면 \((W_i\land H_j)\lor (H_i\land W_j)\)여야지 버스를 운행할 수 있다.
이 식을 2-CNF로 바꾸면,
\((W_i\lor H_i)\land (W_i\lor W_j)\land (H_j\lor H_i)\land (H_j\lor W_j)\)가 된다.
나머지 경우도 마찬가지로, 반대 방향으로 가는 경로는 \(\lnot\)이 붙어있다고 생각하고 처리하면 된다.

이제 2-SAT 문제가 됐으니 풀면 된다.


'문제' 카테고리의 다른 글

BOJ 16011 Min Max Tree  (0) 2019.05.24
BOJ 2066 카드놀이  (0) 2019.02.18
BOJ 2454 트리 분할  (0) 2018.12.03
BOJ 10717 성벽  (0) 2018.11.30
BOJ 16565 N포커  (0) 2018.11.27
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함