每日一題 迷路的牛牛

2021-09-27 04:45:15 字數 1018 閱讀 4354

本題來自牛客網,為網易2023年校招題之一。(點我跳轉)

題目描述:

牛牛去犇犇老師家補課,出門的時候面向北方,但是現在他迷路了。雖然他手裡有一張地圖,但是他需要知道自己面向哪個方向,請你幫幫他。

輸入描述:

每個輸入包含乙個測試用例。

每個測試用例的第一行包含乙個正整數,表示轉方向的次數n(n<=1000)。

接下來的一行包含乙個長度為n的字串,由l和r組成,l表示向左轉,r表示向右轉。

輸出描述:

輸出牛牛最後面向的方向,n表示北,s表示南,e表示東,w表示西。

時間限制:1秒 空間限制:32768k

看見這道題的第一反應,便是可以用乙個列舉型變數來模擬牛牛面向的方向,依次迭代轉向來更新面向的方向。但是這不是乙個很好的解決方案。根據我們的生活經驗很容易得出轉向問題具有以下三點性質。

第一點,兩次轉向之間具有交換律,即先向右轉再向左轉等價於先向左轉再向右轉。

第二點,不同方向的轉向能相互抵消,即向右轉再向左轉等價於不轉向。

第三點,連續向乙個方向轉4次等價於沒有轉向。

接下來的解決方案便是基於以上三點求得。

由於轉向具有交換律,因此無需在迭代轉向時,時刻更新面向的方向,只需統計向左轉與向右轉的次數。接著,根據第二條性質,將其兩者次數相減,然後根據第三條性質,將差對4取餘即可得出等價的轉向次數。

下面給出其核心**吧。

for

(int i=

0;i)t=t%4;

//t為等價的向右轉的次數

牛牛以前在老師那裡得到了乙個正整數數對(x, y), 牛牛忘記他們具體是多少了。

但是牛牛記得老師告訴過他x和y均不大於n, 並且x除以y的餘數大於等於k。

牛牛希望你能幫他計算一共有多少個可能的數對。

迷路的牛牛

牛牛去犇犇老師家補課,出門的時候面向北方,但是現在他迷路了。雖然他手裡有一張地圖,但是他需要知道自己面向哪個方向,請你幫幫他。輸入描述 每個輸入包含乙個測試用例。每個測試用例的第一行包含乙個正整數,表示轉方向的次數n n 1000 接下來的一行包含乙個長度為n的字串,由l和r組成,l表示向左轉,r表...

迷路的牛牛

題目描述 牛牛去犇犇老師家補課,出門的時候面向北方,但是現在他迷路了。雖然他手裡有一張地圖,但是他需要知道自己面向哪個方向,請你幫幫他。輸入描述 每個輸入包含乙個測試用例。每個測試用例的第一行包含乙個正整數,表示轉方向的次數n n 1000 接下來的一行包含乙個長度為n的字串,由l和r組成,l表示向...

迷路的牛牛

牛牛去犇犇老師家補課,出門的時候面向北方,但是現在他迷路了。雖然他手裡有一張地圖,但是他需要知道自己面向哪個方向,請你幫幫他。每個輸入包含乙個測試用例。每個測試用例的第一行包含乙個正整數,表示轉方向的次數n。接下來的一行包含乙個長度為n的字串,由l和r組成,l表示向左轉,r表示向右轉。輸出牛牛最後面...