百度之星 瞬間移動 組合數學逆元

2021-07-12 00:07:45 字數 569 閱讀 6076

有乙個無限大的矩形,初始時你在左上角(即第一行第一列),每次你都可以選擇乙個右下方格仔,並瞬移過去(如從下圖中的紅色格仔能直接瞬移到藍色格仔),求到第nn行第mm列的格仔有幾種方案,答案對1000000007取模。

去掉起點和終點

i 從 1到min(n-2,m-2)

ans+=c(n-2,i)*c(m-2,i);

mod為質數 用逆元處理

#include

#include

#include

using namespace std;

#define ll long long

#define maxn 100005

#define mod 1000000007ll

ll inv[maxn],c1[100005],c2[100005];

ll n,m,w;

void init()

void solve()

printf("%i64d\n",ans);

}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...

百度之星2016練習賽 瞬間移動

瞬間移動 system message 命題人 基準時間限制 1 秒 空間限制 131072 kb 分值 80 有乙個無限大的矩形,初始時你在左上角 即第一行第一列 每次你都可以選擇乙個右下方格仔,並瞬移過去 如從下圖中的紅色格仔能直接瞬移到藍色格仔 求到第n行第m列的格仔有幾種方案,答案對1000...

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 拆數用隔板法組合。...