【問題描述】
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作為下...