51nod 1627 瞬間移動 組合數

2021-08-10 08:34:47 字數 1310 閱讀 9289

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

單組測試資料。

兩個整數n,m(2<=n,m<=100000)

output

乙個整數表示答案。
input示例

4 5
output示例

10這個圖就是乙個提示。我們從左上角只能調到藍色部分,也就是說第一行和第一列都是不能用的,直接忽略。

最後一排和最後一列也是不能用的,因為只能往右下角走。

所以一共可供選擇的只有n-2+m-2.也就是n+m-4個格仔.

我們可以選取的也就是n-2或者m-2個,也就是求c(n+m-4,n-2) 或者c(n+m-4,m-2).

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

typedef

setset;

typedef

vector

vec;

typedef

set::iterator it;

typedef

long

long

ll;#define mem(s,n) memset(s,n,sizeof(s))

intp =

1000000007

;ll quick_mod(ll a,ll b)

//a^b%p 快速冪

b >>=

1; a = a * a % p; }

return

ans; }ll c(ll n,ll m)

//ncm %p

return

ans;}ll lucas(ll n,ll m)

//lucas定理

intmain(

intargc,

char

*argv)

51nod1627 瞬間移動

打表可以看出來是組合數。媽呀為什麼弄成n m 4,n 1,m 3就錯啊。打表可以看出來是組合數。媽呀為什麼弄成n m 4,n 1,m 3就錯啊。include include include includeusing namespace std define rep i,s,t for int i ...

51 Nod 1627瞬間移動 插板法

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

51nod 瞬間移動 組合數學

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