51nod 1120 機械人走方格V3

2021-08-22 11:44:36 字數 706 閱讀 2279

1120 機械人走方格 v3

基準時間限制:1 秒 空間限制:131072 kb 分值: 80 難度:5級演算法題

n * n的方格,從左上到右下畫一條線。乙個機械人從左上走到右下,只能向右或向下走。並要求只能在這條線的上面或下面走,不能穿越這條線,有多少種不同的走法?由於方法數量可能很大,只需要輸出mod 10007的結果。

input

輸入乙個數n(2 <= n <= 10^9)。
output

輸出走法的數量 mod 10007。
input示例

4
output示例

10
#include

#define mod 10007

using namespace std;

typedef long long ll;

ll inv(ll t, ll p)

ll f[mod+3];

void init(int p)

ll pow_mod(ll a, ll x, int p)

return ret;

}ll lucas(ll n, ll k, int p)        //c (n, k) % p

return ret;

}int main(void)

51nod1120 機械人走方格 V3

跟括號序列是一樣的,將向右走看成是左括號向左走看成是右括號就可以了。那麼就是卡特蘭數了。然後由於n和m太大所以用了lucas定理 跟括號序列是一樣的,將向右走看成是左括號向左走看成是右括號就可以了。那麼就是卡特蘭數了。include include include includeusing name...

51Nod1120 機械人走方格 V3

題目看這裡 乙個數學題,答案就是卡特蘭數 2 求卡特蘭數要用到組合數求法f n c 2n 2,n 1 n 由於模數較小,可以lucas定理直接做,但是這樣是有問題的因為n不一定和模數互質,但是還是a了,資料比較水 pragma gcc opitmize o3 pragma g opitmize o3...

51nod 1118 機械人走方格

m n的方格,乙個機械人從左上走到右下,只能向右或向下走。有多少種不同的走法?由於方法數量可能很大,只需要輸出mod 10 9 7的結果。第1行,2個數m,n,中間用空格隔開。2 m,n 1000 輸出走法的數量。2 3第一次看到覺得用搜尋寫,沒寫出來,但是還是覺得搜素可以實現的 下面用的是dp,等...