資芽鎮的分佈形如一個 $N$ 列 $M$ 行的方格圖,每一列每一行都是一條交通要道,也因此資芽鎮總共有 $N\times M$ 個地點,在第 $i$ 列 $j$ 行的地點會以 $(i,j)$ 表示。但熱鬧的資芽鎮總是引來不少交通上的問題,因此資芽鎮決定重新規劃資芽鎮的交通方式。
經過鎮上開會討論,最終大家決定讓資芽鎮內的每一列每一行共 $N+M$ 條交通要道全部改為單行道,這樣就能簡化不少交通規則並降低意外風險。
不過單行道衍伸出來的問題當然不少,其中最令人頭痛的就是地點與地點之間的「可抵達性」。若這 $N+M$ 條交通要道不好好定向的話,讓 $K$ 個重要的交通要求地點 $A_i$ 到地點 $B_i$ 不存在交通路線就完蛋了。不止如此,因為這 $K$ 個重要的交通要求經常被大眾使用,所以除了要滿足存在交通路線之外,還得滿足對於所有要求 $i$,「地點 $A_i$ 至多只需轉彎一次就能抵達地點 $B_i$」
身為程式高手的你,可以給出一個替 $N+M$ 條交通要道定向的方案,使得 $K$ 個交通要求 $A_i,B_i$ 都滿足「地點 $A_i$ 至多只需轉彎一次就能抵達地點 $B_i$」嗎?
測試資料第一行包含三個非負整數 $N,M,K(1\le N,M\le 10^5,0\le K\le 3\times 10^5)$,代表資芽鎮的分佈形如一個 $N$ 行 $M$ 列的方格圖,且總共有 $K$ 個重要的交通要求需要被滿足。
接下來 $K$ 行,第 $i$ 行四個正整數 $A_{i,x},A_{i,y},B_{i,x},B_{i,y}(1\le A_{i,x},B_{i,x}\le N,1\le A_{i,y},B_{i,y}\le M)$,代表第 $i$ 個重要的交通要求中的 $A_i$ 以 $(A_{i,x},A_{i,y})$ 表示、$B_i$ 以 $(B_{i,x},B_{i,y})$ 表示。
保證不會有 $A_i$ 和 $B_i$ 一樣的交通要求。
若不存在任何定向的方法滿足所有要求,請輸出「No」於一行(不含引號);否則請輸出「Yes」於一行(不含引號)後,輸出一行長度為 $N+M$ 的 $01$ 字串,其中:
1. 前 $N$ 個字元中的第 $i$ 個代表第 $i$ 列交通要道的方向,以 $1$ 為正(對於每個地點 $(i,j)$ 都能走到 $(i,j+1)$,其中 $1\le j\lt M$),$0$ 為負(對於每個地點 $(i,j)$ 都能走到 $(i,j-1)$,其中 $1\lt j\le M$)
2. 後 $M$ 個字元中的第 $j$ 個代表第 $j$ 行交通要道的方向,以 $1$ 為正(對於每個地點 $(i,j)$ 都能走到 $(i+1,j)$,其中 $1\le i\lt N$),$0$ 為負(對於每個地點 $(i,j)$ 都能走到 $(i-1,j)$,其中 $1\lt i\le N$)
若存在多種定向的方法,輸出任意一種皆會視為通過。
NEOJ Problem 738
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0~22 | 100 |