2 3 1 1 0 0
10 2
ACM_賀榮偉
思路:(直接用偉哥的)給你一張紙,n(行)*m(列)你要計算的是
算出從一個對角線到另一個對角線有多少走法(只能向上,向右走)。
分析:一個矩陣,它有行有列,要到達對角線,必定有通過所有的行和列,那麼存在兩種情況,當行(n)==列(m),即剛好走完列和行,在m+n個裡選m或n個組合得C(m+n,m)或C(m+n,n)。
當兩者不相等,就要看那個先到,所有最小的必定先到達。
#include#include #include #include using namespace std; int main() { long long n,m; while(~scanf("%lld%lld",&n,&m),n||m) { long long a,b; a=n+m; b=n 0) sum*=(a--/(double)(b--)); printf("%.lf\n",sum); } }