HDU 2332 機械人的舞蹈 遞推

2021-09-08 15:49:39 字數 1888 閱讀 1781

直接進入正題,這題要求解的是乙個條件極其寬鬆下的組合題,似乎在看見這題的時候,我們就能遇見這道題的答案會是多麼的龐大,所以題中也才會有 % 9937 這樣的提示。對於如此大的乙個運算,只走一步的話還好辦,有9種情況,(順時針和逆時針旋轉2次加上相鄰兩個交換位置(交換一對的4次,交換兩對的2次)最後加上原地不動的1次),就1次就夠麻煩的,計算結果表明,兩步共有633種可能, 足以見得後面的情況是多麼的複雜。

假設布局如下(上面依次站著a, b, c, d號機械人):

"0" -a    "1" -b

"2" -c    "3" -d

那麼對於剛開始位於 "0" 的 a 機械人來說,此時它位於 "0" 的方案數為 1, 位於其他三個區域的方案數為 0,這是顯而易見的,那麼下一時刻呢?是這樣的,此時位於"0"的方案數就變成了 1,位於"1"的方案數為 1,位於"2"的方案數為 1, 位於"3"的方案數為 0。哦,原來是這樣的,就是每次加上跟 "x" 位置相鄰以及本身位置上一步的方案數。

有: dp[n][0] = dp[n-1][0] + dp[n-1][1] + dp[n-1][2];   // 原諒我變數名取了dp,它看起來確實比較順眼

dp[n][1] = dp[n-1][0] + dp[n-1][1] + dp[n-1][3];

dp[n][2] = dp[n-1][0] + dp[n-1][2] + dp[n-1][3];

dp[n][3] = dp[n-1][1] + dp[n-1][2] + dp[n-1][3];

再對初始化位置為 "1", "2", "3" 的機械人進相同的步驟就能夠計算出每個機械人在第n步時,在每乙個區域的方案總數。

做好了上面的準備工作,我們就能夠利用這些資訊來進一步解決這個棘手的問題。那麼我們還是來看最簡單的只走一步來分析它,由於我們已經知道了走了1步後,各個機械人最後在四個位置的方案數有多少種。

好,我們開始來數,首先是順時針旋轉,此時 a 到達了 "1", b到達了 "3", c到達了 "0" , d到達了 "2",恩,這個情況出現了,於是我們要去找了,到第 n = 1 步的資料中尋找a在"1"有多少種方案,依次 n = 1時 b在"3",c在"0",d在"2"的方案數。將他們相乘即得到這種終態下的方案數。接下來就是剩下8種狀態對應的方案數了。在n = 1步中這些方案總數都是1種。

但是新的問題又出來了,難道我要把每一步的所有可能的情況都推算出來嗎,其實這裡有個蠻力的法子,就是把所有可能的終態都計算一遍,大不了就是多加幾個零唄。我們可以推算出終態總數為24種,也即4!。

這樣分析完之後,題目就有可解性了。動手吧。

**如下:

1 #include 

2 #include

3 #include

4 #include

5 #include

6 #include

7using

namespace std;89

struct statu

10 a[4]; //

四個機械人的位置資訊

1314

void deal( void )

15 25 }

26 }

2728

int slove( int n )

29 ;

31for( int i = 0; i < 24; ++i )

32

41return sum;

42 }

4344

int main()

45 50

51 deal();

5253

int n;

54while( scanf( "

%d", &n ) != eof )

55

5859

return

0;60 }

遞推 機械人走格仔

題目 有乙個x y的網格,乙個機械人只能走格點且只能向下走或向右走,要從左上角走到左下角,求有多少總走法。該題可以直接使用遞迴,也可以著遞推公式,但感覺遞迴的效能沒有遞推的好,但自我感覺遞推的思路相對較難,規律較為難找。遞迴 public static intrecursion int x,int ...

HDOJ 2238 機械人的舞蹈II

清明去鄉下掃了一圈墓 回來把這題a了.首先說一下這題和hdoj 2232的區別.這道題描述上和2232的區別就是本題的機械人是一樣的.2232裡的機械人是不同的.那麼造成的區別在於轉移的時候差別.如有 4 0 2 2 1,2 3,4 1,3 2,4 0 0 0 0 如果是不同機械人.那麼 0 0 與...

好色機械人的豔遇 機械人豔遇 《機械人的旅行》

講述機械人 路遇開房車的 剛剛開始的時候畫風很舒服,直到到了晚上上了她的床之後。畫風速變了!這個女主角聲音超好聽。整個情節實在太流氓了,太猥瑣了!連六六君這樣的老司機都看不下去了!正片在三分五十,不謝 很抱歉,此內容已經失效了!就連六六君也無法恢復了。請欣賞其他有效的內容 當您看到這條資訊的時候,很...