zoukankan      html  css  js  c++  java
  • BZOJ 3907: 网格【组合数学】

    Description

    某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标为B(n, m),其中n >= m。现在从A(0, 0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点(x, y)都要满足x >= y,请问在这些前提下,到达B(n, m)有多少种走法。

    Input

    输入文件中仅有一行,包含两个整数n和m,表示城市街区的规模。

     

    Output

    输出文件中仅有一个整数和一个换行/回车符,表示不同的方案总数。

     

    Sample Input

    6 6

    Sample Output

    132

    HINT

    100%的数据中,1 <= m <= n <= 5 000
    思路:和上上上一场BC相同,甚至还比那题简单,可以知道答案是(n-m+1)/(n+1)*C(n,n+m)
     
     1 n,m=map(int , raw_input().split())
     2 up = 1
     3 down = 1
     4 u = n + m
     5 for i in range(u - m + 1 ,u+1):
     6     up = up * i
     7 for i in range(1,m+1):
     8     down = down * i
     9 C = up / down
    10 C = C * (n - m + 1) / (n+1)
    11 print C
    View Code
  • 相关阅读:
    2.6
    zuoye
    练习1
    练习
    练习
    4
    3
    2
    1
    1.3
  • 原文地址:https://www.cnblogs.com/philippica/p/4394664.html
Copyright © 2011-2022 走看看