雷射樣式(一題多解)

2021-10-10 06:16:15 字數 1150 閱讀 9775

【問題描述】

x星球的盛大節日為增加氣氛,用30台機光器一字排開,向太空中打出光柱。

安裝除錯的時候才發現,不知什麼原因,相鄰的兩台雷射器不能同時開啟!

國王很想知道,在目前這種bug存在的情況下,一共能打出多少種雷射效果?

顯然,如果只有3臺機器,一共可以成5種樣式,即:

1、全都關上(sorry, 此時無聲勝有聲,這也算一種)

2、開一台,共3種

3、開兩台,只1種

但是30臺就不好算了,國王只好請你幫忙了。

【答案提交】

要求提交乙個整數,表示30臺雷射器能形成的樣式種數。

注意,只提交乙個整數,不要填寫任何多餘的內容。

答案:2178309

解法一:二進位制法暴力列舉+判斷。

#include

using

namespace std;

bool

check

(int n)

return

true;}

intmain()

cout

}

解法二:dfs(01揹包模型)。

#include

using

namespace std;

int count =0;

void

dfs(

int f,

int step)

if(step-f!=1)

dfs(step,step+1)

;//點亮該燈

dfs(f,step+1)

;//不點

}int

main()

解法三:動態規劃+遞推。

#include

using

namespace std;

int dp[31]

;//動態規劃陣列,dp[i]表示前i個燈時的雷射樣數

intmain()

cout<;return0;

}

一題多解 面試題

最近在其他論壇上看到幾個的面試題,這些天,qq群內的人都在討論怎麼解答才最簡單,下面列出題目 檔案a 檔案b a b c a b c b c a b c a c b a c a b a a a 1 1 1 b b b 2 2 2 c c c 3 3 3 要求合併2個檔案如下 a b c a b c ...

一題多解 面試題

最近在其他論壇上看到幾個的面試題,這些天,qq群內的人都在討論怎麼解答才最簡單,下面列出題目 檔案a 檔案b a b c a b c b c a b c a c b a c a b a a a 1 1 1 b b b 2 2 2 c c c 3 3 3 要求合併2個檔案如下 a b c a b c ...

一題多解 迴圈填充二維陣列

問題 有乙個m n的二維陣列,從外到內按照順時針填充,並將結果列印出來。據個例子 3 4 的陣列,填充結果為 1 2 3 4 10 11 12 5 9 8 7 6 我們可以來的直接點,既然題目要求我們順時針填充,那麼我們就這樣把這個陣列填充滿就好了。一般情況下,下標的遞增都是線性單向的。例如x作為下...