資料範圍: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數學題先打表,...