練習題 奶牛跳舞

2021-07-22 22:51:16 字數 2102 閱讀 1903

奶牛bessie在乙個矩形網格的舞台上跳舞。每一格是乙個1 x 1的單元方格。bessie的四隻腳縮寫如下:

fr: 右前腳

fl: 左前腳

rr: 右後腳

rl: 左後腳

下面的初始狀態表示bessie頭朝北方站在相鄰的4個方格裡,形成乙個正方形:

fl fr

rl rr

bessie跳舞一共有n(1 <= n <= 1000)個指令,每條指令要求bessie的乙隻腳移動一格,或者是以乙隻腳為支點,順時針旋轉90度。

移動指令是3字元的,前2個字元描述哪乙隻腳,第3個字元描述移動方向:(f = 前進, b = 後退, r = 右, l = 左)

例如,"frf"表示右前腳向前移一格。"rlr"表示左後腳向右移一格。注意,移動的方向與bessie的頭朝向有關。

旋轉指令也是3字元的,前2個字元描述哪乙隻腳,第3個字元固定為'p'。

例如,"frp"表示以右前腳為支點,順時針旋轉90度。如果她旋轉前站成這樣(頭朝北):

.. .. .. 

.. .. fr 

.. fl .. 

.. rl rr 

旋轉後將站成這樣(頭朝東):

rl fl .. 

rr .. fr 

.. .. ..  

.. .. ..

給出n條指令,求乙個最小的矩形區域作為舞台,使得bessie在上面跳舞,任何時刻每條腳都在舞台上。

如果某個時刻,bessie的兩條腳需要站在同乙個格仔裡,停止跳舞,輸出-1

除此情況外,其他任何的四條腳的狀態(例如後腳移動到前腳之前)都是合法的。

input format:

第1行: 乙個整數n

接下來n行,每行乙個指令

sample input (file ballet.in):

3frf

frprlb

output format:

第1行:乙個整數,表示最小的矩形的面積。

sample output (file ballet.out):

16output details:

bessie 需要乙個 4 x 4的舞台,它的移動過程為:

.. .. .. .. 

.. .. .. .. (facing north)

.. .. fl fr 

.. .. rl rr 

after frf:

.. .. .. .. 

.. .. .. fr (facing north)

.. .. fl .. 

.. .. rl rr 

after frp:

.. rl fl .. 

.. rr .. fr (facing east)

.. .. .. .. 

.. .. .. .. 

after rlb:

rl .. fl ..

.. rr .. fr (facing east)

.. .. .. ..

.. .. .. ..

這道題剛開始看時,只想到只需上下左右動就行了,可寫到一半時發現,旋轉時,需要考慮頭的方向,可見,這道題很zz

開始想用陣列來儲存踩過的點,再搜出上下左右四個點,結果超時………………

想了一晚上,後經同學啟發,發現可以,邊跳邊計算舞台最大長寬,終於,ac**出爐了!!

順便吐槽一下,這奶牛也是個長腿歐巴,腳跨得好遠,呵呵…………

**如下:

#include#includeint xm[4][4]=,,,},ym[4][4]=,,,};

int cf[4][2]=,,,};

int xy[4]=;

char c[3];

int f;

void work(int x,int t)

if(c[2]=='b')

if(c[2]=='l')

if(c[2]=='r')

if(c[2]=='p')

f++;

f%=4; }}

int main()

} printf("%d",(xy[2]-xy[0]+1)*(xy[3]-xy[1]+1));

}

python書中練習題 python練習題

1 定義乙個空列表,接收從鍵盤輸入的整數,把列表傳給乙個從大到小排序的函式,再輸出排序後的列表的值 listex b 0 a int input 請輸入列表長度 while b a num int input 請輸入字元 b 1 print listex sum 0 for i in range 0...

python的練習題 Python練習題

1 使用while迴圈輸入1 2 3 4 5 6 8 9 10 i 0while i 10 i i 1 if i 7 continue print i 結果 e python python python test.py1 2 求1 100的所有數的和 i 0sum 0 while i 100 i 1...

練習題 基礎練習

第一題 需求 1 計算 5 個月的生活大概開銷 spending 比如 rent 房租 800.00 mealcost 吃飯 900.00 clothingcosts 買衣服 300.00 othercosts 其他費用 300.00 public class dome1 第二題 需求 2 計算 1...