1444 Parallelepiped walk
做法一可以嘗試分類(lèi)討論。具體類(lèi)似這道題目The Return of Carl。然后也可以觀(guān)察分類(lèi)討論的幾種情況。如下圖:

可以發(fā)現(xiàn)他們沿x軸一個(gè)方向走,沿y軸也是一個(gè)方向走,不會(huì)來(lái)回。(這點(diǎn)很重要,如果不發(fā)現(xiàn)這一點(diǎn)直接搜的話(huà),會(huì)搜出更短的但不合法的距離。) 也可以判是否路線(xiàn)經(jīng)過(guò)了所有的矩形,如果經(jīng)過(guò)了,就是一條合法路徑。
出題者應(yīng)該會(huì)避免相切的數(shù)據(jù)。和當(dāng)前木棍在同一直線(xiàn)上的特殊點(diǎn),一種可以根據(jù)線(xiàn)段的中心確定它會(huì)不會(huì)阻擋。
另外一種連中心也在同一條直線(xiàn)上。這時(shí)認(rèn)為在有木棍實(shí)體的那側(cè)的特殊點(diǎn)不會(huì)阻擋,而另一側(cè)會(huì)。
總的來(lái)說(shuō),障礙物(一條線(xiàn)段)他可能出現(xiàn)的位置是0~360。而難區(qū)分的是0度和360度。如果發(fā)現(xiàn)一個(gè)點(diǎn)落在0度或360度的位置時(shí),通過(guò)判斷障礙物在左邊(包括平行的時(shí)候)還是在右邊來(lái)確定會(huì)不會(huì)阻擋。
還可以通過(guò)讓木棍轉(zhuǎn)動(dòng)一個(gè)小的角度,看一下是遠(yuǎn)離障礙物,還是和障礙物相交來(lái)確定是否會(huì)阻擋。


