51nod1120 機械人走方格 V3

2022-03-30 16:52:27 字數 854 閱讀 4204

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

//跟括號序列是一樣的,將向右走看成是左括號向左走看成是右括號就可以了。那麼就是卡特蘭數了。 

#include#include#include#includeusing namespace std;

#define rep(i,s,t) for(int i=s;i<=t;i++)

#define dwn(i,s,t) for(int i=s;i>=t;i--)

#define clr(x,c) memset(x,c,sizeof(x))

#define ll long long

int read()

const int mod=10007;

int fac[mod],inv[mod];

ll pow(ll x,int n)

return ans;

}int get(int n,int m){

if(n1120 機械人走方格 v3

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

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

input

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

output

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

4
output示例

10

51nod 1120 機械人走方格V3

1120 機械人走方格 v3 基準時間限制 1 秒 空間限制 131072 kb 分值 80 難度 5級演算法題 n n的方格,從左上到右下畫一條線。乙個機械人從左上走到右下,只能向右或向下走。並要求只能在這條線的上面或下面走,不能穿越這條線,有多少種不同的走法?由於方法數量可能很大,只需要輸出mo...

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,等...