POJ 1942 Paths on a Grid
2013-02-16 01:06
483 查看
题意:一个A*B的矩阵,题问从左下点沿矩阵的边走到右上点有多少种不同的走法,每次只能向右走或者向上走。
思路:排列组合计数。
/*每一个点的不同走法的总数,是由左边的点和下边的点的总数之和。*/
/*这就很容易联想到排列组合的一个公式:
,其中,n为走到这点所总共经过的边数(不分横边竖边),r可以看为已经走过的横边或者竖边。*/
/*即有n = a + b,r = a 或者 r = b。*/-----借鉴别人的思路
Source Code
Source Code
思路:排列组合计数。
/*每一个点的不同走法的总数,是由左边的点和下边的点的总数之和。*/
/*这就很容易联想到排列组合的一个公式:
,其中,n为走到这点所总共经过的边数(不分横边竖边),r可以看为已经走过的横边或者竖边。*/
/*即有n = a + b,r = a 或者 r = b。*/-----借鉴别人的思路
Source Code
Problem: 1942 | User: imutzcy | |
Memory: 164K | Time: 0MS | |
Language: C++ | Result: Accepted |
#include<functional> #include<algorithm> #include<iostream> #include<fstream> #include<sstream> #include<iomanip> #include<numeric> #include<cstring> #include<cassert> #include<cstdio> #include<string> #include<vector> #include<bitset> #include<queue> #include<stack> #include<cmath> #include<ctime> #include<list> #include<set> #include<map> using namespace std; typedef long long LL; LL C(LL m,LL n) { if(m>n-m) m=n-m; LL ans=1,T=m; while(T--){ ans*=n--; while(ans%m==0&&m>1) ans/=m--; } return ans; } int main(){ LL a,b; while(~scanf("%lld%lld",&a,&b),a+b) printf("%lld\n",C(a,a+b)); return 0; }
相关文章推荐
- poj 1942 Paths on a Grid 【数学题】
- 文章标题 POJ 1942: Paths on a Grid(数学)
- POJ 1942 Paths on a Grid
- poj1942 Paths on a Grid
- 组合数的递归调用:poj 1942 Paths on a Grid
- D - Paths on a Grid POJ - 1942
- poj 1942 Paths on a Grid 求组合数mCn的方法
- Paths on a Grid(poj 1942)
- POJ 1942 Paths on a Grid(组合数公式)
- POJ 1942:Paths on a Grid
- POJ-1942 Paths on a Grid 组合数
- 【POJ 1942】 Paths on a Grid
- poj 1942 Paths on a Grid
- POJ 1942 Paths on a Grid【组合数学】
- 【poj 1942】Paths on a Grid 题意&题解&代码(C++)
- POJ-1942 Paths on a Grid
- POJ 1942:Paths on a Grid
- POJ1942——Paths on a Grid(组合数学)
- POJ 1942 Paths on a Grid 组合以及处理阶乘
- [ACM] POJ 1942 Paths on a Grid (组合)