牛客題霸 簡單變向 動態規劃解

2021-10-08 13:50:13 字數 1040 閱讀 8244

牛牛準備在乙個3行n列的跑道上跑步。一開始牛牛位於(1,1)。

跑到第i行第j+1列

跑到第i-1行第j+1列(如果i=1則不可以這麼跑)。

跑到第i+1行第j+1列(如果i=3則不可以這麼跑)。

跑道上有一些格仔設定了路障(乙個格仔可能有多個路障),牛牛不能跑到路障上。現在牛牛想知道,從(1,1)到(3,n)有多少條不同的路徑?

為了防止答案過大,答案對1e9+7取模。

輸入

4,1,[1],[2]

輸出

2

說明

在第一行第二列的位置有乙個障礙

牛牛有兩種跑法:

(1,1)->(2,2)->(2,3)->(3,4)

(1,1)->(2,2)->(3,3)->(3,4)

1#1

2011

3001

2如上表所示,(1, 1)是起點,(1, 2)是路障,要到達(2, 2)只能從(1, 1)、(2, 1),因此到達2行2列的路徑有 0 + 1 = 1 條。

同理,(1, 3) = (1, 2) + (2, 2) = 0 + 1 = 1

(2, 3) = (1, 2) + (2, 2) + (3, 2) = 0 + 1 + 0 = 1

(3, 3) = (2, 2) + (3, 2) = 1 + 0 = 1

(1, 4) = (1, 3) + (2, 3) = 1 + 1 = 2

(2, 4) = (1, 3) + (2, 3) + (3, 3) = 1 + 1 + 1 = 3

(3, 4) = (2, 3) + (3, 3) = 1 + 1 = 2

因此到達(3, 4)的路徑有2條。

const

int mod =

1e9+7;

class

solution

return dp[3]

[n];}}

;

牛客動態規劃題1

給你乙個長度為50的數字串,問你有多少個子序列構成的數字可以被3整除 答案對1e9 7取模 輸入描述 輸入乙個字串,由數字構成,長度小於等於50 輸出描述 輸出乙個整數 示例1輸入 複製132 輸出複製 3示例2 輸入複製9輸出 複製1示例3輸入 複製333 輸出複製 7示例4 輸入複製 12345...

牛客題霸 進製轉換

進製轉換的方法較為經典。對於乙個十進位制的是數,每次對m取模,然後除以m m為轉換後的進製 即可得到m進製數。因為m進製的數第一位時m 0m 0 m0,第二位時m 1m 1 m1,第三位m2 m 2 cdots m2 所以如果10進製的數n大於m km k mk k是最大的,即n 1 nn 1 則說...

牛客題霸 進製轉換

題目描述 給定乙個十進位制數m,以及需要轉換的進製數n。將十進位制數m轉化為n進製數 示例1輸入 7,2返回值 111 備註 m是32位整數,2 n 16.解題思路 考慮負數和大於10位的進製。python 進製轉換 param m int整型 給定整數 param n int整型 轉換到的進製 r...