51nod 瞬間移動 組合數學

2021-07-31 11:28:10 字數 2206 閱讀 4241

1627 瞬間移動

基準時間限制:1 秒 空間限制:131072 kb 分值: 80 難度:5級演算法題 收藏 關注

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

input

單組測試資料。

兩個整數n,m(2

<=n,m<=100000)

output

乙個整數表示答案。

input示例45

output示例

試著推一下會發現他是楊輝三角,

那麼就可以做了。

這裡只需要求c(m-2,n-2+m-2)即可。

這裡用到了lucas定理:

a、b是非負整數,p是質數。ab寫成p進製:a=a[n]a[n-1]...a[0],b=b[n]b[n-1]...b[0]。

則組合數c(a,b)與c(a[n],b[n])*c(a[n-1],b[n-1])*...*c(a[0],b[0]) mod p同餘

即:lucas(n,m,p)=c(n%p,m%p)*lucas(n/p,m/p,p)

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define mod 1000000007

#define fir first

#define sec second

#define fin freopen("/home/ostreambaba/文件/input.txt", "r", stdin)

#define fout freopen("/home/ostreambaba/文件/output.txt", "w", stdout)

#define mes(x, m) memset(x, m, sizeof(x))

#define pii pair

#define pll pair

#define inf 1e9+7

#define inf 0x3f3f3f3f

#define pi 4.0*atan(1.0)

#define lowbit(x) (x&(-x))

#define lson l,m,rt<<1

#define rson m+1,r,rt<<1|1

typedef

long

long ll;

typedef

unsigned

long

long ull;

const

double eps = 1e-9;

const

int mod = 1000000000+7;

const

int maxn = 1000;

using

namespace

std;

inline

int read()

while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();

return x*f;

}int p = 1000000007;

ll fastmod(ll n,ll m)

n=(n*n)%mod;

m>>=1;

}return res;

}ll c(ll n,ll m)

ll ans=1;

for(int i=1;i<=m;++i)

return ans;

}ll lucas(ll n,ll m)

return c(n%mod,m%mod)*lucas(n/mod,m/mod)%mod; //lucas定理

}int main()

51nod 1627 瞬間移動 組合數

有乙個無限大的矩形,初始時你在左上角 即第一行第一列 每次你都可以選擇乙個右下方格仔,並瞬移過去 如從下圖中的紅色格仔能直接瞬移到藍色格仔 求到第n行第m列的格仔有幾種方案,答案對1000000007取模。單組測試資料。兩個整數n,m 2 n,m 100000 output 乙個整數表示答案。inp...

51nod1639 組合數學)

題意 中文題誒 思路 組合數學 n根鞋帶要組成乙個環,那麼顯然與連成一根鞋帶之前不成環是衝要條件 假設當前還剩下 i i 1 根鞋帶,要從中選擇兩根鞋帶頭連線後不成環的概率為 pi 不成環的選擇方法數 所有選擇方法數 所有方法數 c 2 i,2 2 i 2 i 1 2 i 2 i 1 成環的方法數 ...

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

有乙個無限大的矩形,初始時你在左上角 即第一行第一列 每次你都可以選擇乙個右下方格仔,並瞬移過去 如從下圖中的紅色格仔能直接瞬移到藍色格仔 求到第nn行第mm列的格仔有幾種方案,答案對1000000007取模。去掉起點和終點 i 從 1到min n 2,m 2 ans c n 2,i c m 2,i...