lintcode 1493 模擬行走機械人

2021-10-02 05:13:33 字數 1455 閱讀 5388

機械人在乙個無限大小的網格上行走,從點 (0, 0) 處開始出發,面向北方。該機械人可以接收以下三種型別的命令:

-2:向左轉 90 度

-1:向右轉 90 度

1 <= x <= 9:向前移動 x 個單位長度

在網格上有一些格仔被視為障礙物。

第 i 個障礙物位於網格點 (obstacles[i][0], obstacles[i][1])

如果機械人試圖走到障礙物上方,那麼它將停留在障礙物的前乙個網格方塊上,但仍然可以繼續該路線的其餘部分。

返回從原點到機械人的最大歐式距離的平方。

樣例

示例 1:

輸入: commands =[4

,-1,

3], obstacles =

輸出:25

解釋: 機械人將會到達 (3,

4)示例 2:

輸入: commands =[4

,-1,

4,-2

,4], obstacles =[[

2,4]

]輸出:

65解釋: 機械人在左轉走到 (1,

8) 之前將被困在 (1,

4) 處

注意事項

0<= commands.length <=

10000

0<= obstacles.length <=

10000

-30000

<= obstacle[i][0

]<=

30000

-30000

<= obstacle[i][1

]<=

30000

答案保證小於 2

^31

思路:記錄每一次轉身所面對的方向在x,y方向上的可移動距離,接著,在機械人現所在的點每次移動一次,看移動後的位置是否存在障礙物,若存在,則不前進,否則前進,到最後點,計算出距離的平方。

class

solution,,

,}; vector<

int> direction=dir[0]

;int point[2]

=;int index=0;

for(

int i =

0; i < commands.

size()

; i++

)else

if(commands[i]==-

2)else;if

(!count

(obstacles.

begin()

,obstacles.

end(

),tmp)

)else

break;}

}}return

pow(point[0]

,2)+

pow(point[1]

,2);

}};

NOIP模擬 行走

我有個願望,我希望走到你身邊。這是個奇異的世界,世界上的n 1條路聯結起來形成一棵樹,每條路有乙個對應的權值ci。現在我會給出q組詢問或操作。每次詢問我會從乙個x點走到y點,初始在x點我會有乙個數字v,然後每走過一條權值為c的邊,我的v就會變成v c 向下取整 問最後到y時v變成了什麼。每次修改我會...

NOIP模擬 行星通道計畫

時限500ms 考完才發現,很裸的二維樹狀陣列也能過 可以畫圖發現,能滿足兩條線相交,只有兩種情況 1.大的比大的大,小的在中間 9比7大,2在1和7中間 2.小的比小的小,大的在中間 或者說1比2小,7在2和9中間 還有各種修改操作,第乙個想到的就是樹狀陣列,線段樹之類的。而二維樹狀陣列維護的就是...

874 模擬行走機械人

機械人在乙個無限大小的網格上行走,從點 0,0 處開始出發,面向北方。該機械人可以接收以下三種型別的命令 在網格上有一些格仔被視為障礙物。第i個障礙物位於網格點 obstacles i 0 obstacles i 1 如果機械人試圖走到障礙物上方,那麼它將停留在障礙物的前乙個網格方塊上,但仍然可以繼...