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