hdu 5698瞬間移動(組合數取模 盧卡斯定理)

2021-07-12 00:07:45 字數 641 閱讀 6286

資料範圍:2≤

n,m≤

100000,mod=1000000007。

思路:

打表可以發現這個方法數是乙個楊輝三角。

根據楊輝三角的性質,可以知道楊輝三角裡面第n行,第m列的數值為c(n-1,m-1)。

所以我們只要將題目所給的行列轉化一下,然後計算組合數即可。

由於n,m給的範圍比較大。不能直接計算,這是就用到了盧卡斯定理。證明我也沒看懂= =,直接套模板。

盧卡斯定理應用的時候要注意,mod必須為素數,然後mod不能太大。時間複雜度是o(logp(n)*p)(p為mod)。

**:

#include #include #include using namespace std;

typedef __int64 ll;

ll n,m,p;

ll quick_mod(ll a, ll b)

b >>= 1;

a = a * a % p;

}return ans;

}ll c(ll n, ll m)

return ans;

}ll lucas(ll n, ll m)

int main()

return 0;

}

HDU 5698 瞬間移動(組合數,逆元)

x和y分開考慮,在 1,1 到 n,m 之間可以選擇走i步。就需要選i步對應的行c n 2,i 及i步對應的列c m 2,i 相乘起來。假設 m leq n sum c i cdot c i sum c i cdot c c 然後標程裡求i的階乘的逆是預處理的,主要這句 f i m m i cdot...

hdu 5698 瞬間移動

有乙個無限大的矩形,初始時你在左上角 即第一行第一列 每次你都可以選擇乙個右下方格仔,並瞬移過去 如從下圖中的紅色格仔能直接瞬移到藍色格仔 求到第n n n n行第m m m列的格仔有幾種方案,答案對1000000007 1000000007 1000000007取模。input多組測試資料。兩個整...

HDU 5698 瞬間移動 數學

有乙個無限大的矩形,初始時你在左上角 即第一行第一列 每次你都可以選擇乙個右下方格仔,並瞬移過去 如從下圖中的紅色格仔能直接瞬移到藍色格仔 求到第n行第m列的格仔有幾種方案,答案對1000000007取模。多組測試資料。兩個整數n,m 2 n,m 100000 乙個整數表示答案 4 5數學題先打表,...