所有題目源**:git位址
題目
西洋棋中的騎士可以按下圖所示進行移動:
這一次,我們將 「騎士」 放在**撥號盤的任意數字鍵(如上圖所示)上,接下來,騎士將會跳 n-
1 步。每一步必須是從乙個數字鍵跳到另乙個數字鍵。
每當它落在乙個鍵上(包括騎士的初始位置),都會呼出鍵所對應的數字,總共按下 n 位數字。
你能用這種方式呼出多少個不同的號碼?
因為答案可能很大,所以輸出答案模 10^9
+7。示例 1:
輸入:1
輸出:10
示例 2:
輸入:2
輸出:20
示例 3:
輸入:3
輸出:46 1
<= n <=
5000
方案:class
solution
//1=6、8
//2=7、9
//3=4、8
//4=3、9、0
//5=不可能跳到,不用考慮
//6=1、7、0
//7=2、6
//8=1、3
//9=2、4
//0=4、6
for(
int i =
1; i < n; i++
)for
(int i =
0; i <
10; i++
)return sum;}}
;
複雜度計算 935 騎士撥號器 c 解題方法二
思路 將0 9分為四個部分 include include include using namespace std 騎士跳 日 long m 1e9 7 intknightdialer int n vector long dp1 4 有四個數 dp1 0 4 有兩個數 dp1 1 2 有兩個數 dp...
騎士撥號器 c 解題思路
騎士撥號器 c 解題思路 思路 每乙個號碼,是由上面一輪的某個或者某幾個號碼,通過跳 日 得到的。include include include using namespace std 騎士跳 日 long m 1e9 7 intknightdialer int n 儲存最終結果的vetor vec...
每日刷題 騎士撥號器
這一次,我們將 騎士 放在 撥號盤的任意數字鍵 如上圖所示 上,接下來,騎士將會跳 n 1 步。每一步必須是從乙個數字鍵跳到另乙個數字鍵。每當它落在乙個鍵上 包括騎士的初始位置 都會呼出鍵所對應的數字,總共按下 n 位數字。你能用這種方式呼出多少個不同的號碼?因為答案可能很大,所以輸出答案模 10 ...