傳送門: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)。拆數用隔板法組合。求出走k次的方法數,然後加起來就可以了。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 100007;
const
int oo = 2000000007;
const
long
long
int loo = 1000000000000000007ll;
const
int mod = 1000000007;
typedef
long
double ld;
typedef
long
long ll;
ll fact [ maxn ];
ll f [ maxn ];
ll inv [ maxn ];
ll cmod ( ll a , ll b )
int main ( )
while ( scanf ( "%d%d" , &n , &m ) == 2 )
printf ( "%i64d\n" , res );
}return
0;}
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 瞬間移動(組合數,逆元)
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...