有乙個無限大的矩形,初始時你在左上角(即第一行第一列),每次你都可以選擇乙個右下方格仔,並瞬移過去(如從下圖中的紅色格仔能直接瞬移到藍色格仔),求到第n
'>n
'>n
n行第m
'>m
m列的格仔有幾種方案,答案對1000000007
'>1000000007
1000000007取模。
input多組測試資料。
兩個整數n,m
(2≤n
,m≤100000
)'>n,m(2≤n,m≤100000)
n,m(2≤n,m≤100000)
output乙個整數表示答案sample input
4 5sample output
10盧卡斯定理解楊輝三角 楊輝三角第n行的m個數可表示為c(n-1,m-1)
lucas定理是用來求 c(n,m) mod p,p為素數的值,用來解決大組合數求模是很有用的。最大的資料處理能力是p在10^5左右。
c(n,m) = c(n-1,m-1) + c(n-1,m).
#include#include#includeusing namespace std;#define ll long long
const ll mod=1000000007;
#define maxn 70
ll pow(ll a,ll n,ll mod)
return ret%mod;
}ll c(ll n,ll k,ll p)
return ans;
}ll lucas(ll n,ll m,ll p)
int main()
}
HDU 5698 瞬間移動 數學
有乙個無限大的矩形,初始時你在左上角 即第一行第一列 每次你都可以選擇乙個右下方格仔,並瞬移過去 如從下圖中的紅色格仔能直接瞬移到藍色格仔 求到第n行第m列的格仔有幾種方案,答案對1000000007取模。多組測試資料。兩個整數n,m 2 n,m 100000 乙個整數表示答案 4 5數學題先打表,...
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 瞬間移動 百度之星2016
傳送門 hustoj 傳送門 hdu 中文的,有圖,開源網頁吧。m行n列,每次至少往右走一步 往下走一步,所以一共往右走n 1格,往下走m 1格。所以最多走min m 1,n 1 次。往右走往下走的次數相等,所以把m 1和n 1分別拆成k個數的和。k從1取到min m 1,n 1 拆數用隔板法組合。...