跟括號序列是一樣的,將向右走看成是左括號向左走看成是右括號就可以了。那麼就是卡特蘭數了。然後由於n和m太大所以用了lucas定理
//跟括號序列是一樣的,將向右走看成是左括號向左走看成是右括號就可以了。那麼就是卡特蘭數了。output#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)。
輸出走法的數量 mod 10007。input示例
4output示例
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,等...