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 f[m\%i]\%m$$
這裡f即i的逆元,為什麼可以這麼求呢?
首先這裡的m必須是質數。
$$m=k\cdot i+r \equiv 0 \pmod m$$
兩邊乘上$i^\cdot r^$(如果m不是質數,r就可能為0)
$$\begin k\cdot r^+i^ &\equiv& 0 &\pmod m\\
i^ &\equiv& -k\cdot r^ &\pmod m\\
i^ &\equiv& m-\left\lfloor\frac\right\rfloor\cdot \left(m\bmod i\right)^ &\pmod m \end$$
**
#include
#define m 1000000007
#define n 200001
#define ll long long
ll fac[n]=,inv[n]=,f[n]=;
int n,m;
ll c(ll a,ll b)
int main()
while(~scanf("%d%d",&n,&m))
printf("%lld\n",c(m+n-4,m-2));
}
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數學題先打表,...
hdu 5698瞬間移動(組合數取模 盧卡斯定理)
資料範圍 2 n,m 100000,mod 1000000007。思路 打表可以發現這個方法數是乙個楊輝三角。根據楊輝三角的性質,可以知道楊輝三角裡面第n行,第m列的數值為c n 1,m 1 所以我們只要將題目所給的行列轉化一下,然後計算組合數即可。由於n,m給的範圍比較大。不能直接計算,這是就用到...