xtuoj-grid
来源:互联网 发布:mac文明5控制台 编辑:程序博客网 时间:2024/05/17 03:57
一个N*M的网格,从左下角沿格子线走到右上角,只能往右或者往上走,
请问有多少种不同的路线?
输入
多个样例,每行包含两个整数N,M(1≤N,M≤33);如果N和M为0表示输入结束。
输出
每个样例输出一行,为路线的数目。
样例输入
1 1
1 2
33 33
0 0
样例输出
2
3
7219428434016265740
请问有多少种不同的路线?
输入
多个样例,每行包含两个整数N,M(1≤N,M≤33);如果N和M为0表示输入结束。
输出
每个样例输出一行,为路线的数目。
样例输入
1 1
1 2
33 33
0 0
样例输出
2
3
7219428434016265740
/************method 2****************/#include <stdio.h>#include <stdlib.h>#define N 34long long a[34][34];void ways2(){ int i,j; for(i=0; i<N ;i++) a[i][0]=a[0][i]=1; for(i=1; i<N ;i++) for(j=1; j<N ;j++) a[i][j]=a[j][i]=a[i-1][j]+a[i][j-1];}int main(){ int n,m; ways2(); while(scanf("%d%d",&n,&m)==2&&(n||m)) printf("%I64d\n",a[n][m]); return 0;}
/***********method 1****************/#include <stdio.h>#include <stdlib.h>#define LL long longLL gcd(LL a,LL b){ if(!a||!b)return a+b; for(; b ;a^=b,b^=a,a^=b) a%=b; return a;}LL ways(LL n,LL m){ LL numerator,denominator,tn,g; if(!n || !m)return 1; if(n<m)n^=m,m^=n,n^=m;//之前这个一直通不过,不知是不是这两个if语句在作怪 for(tn=numerator=n+m,denominator=m; m>1; ){ numerator*=--tn; denominator*=--m; g=gcd(numerator,denominator); numerator/=g; denominator/=g; } return numerator/denominator;}int main(){ int n,m; while(scanf("%d%d",&n,&m)==2&&(n||m)) printf("%I64d\n",ways((LL)n,(LL)m)); return 0;}
0 0
- xtuoj-grid
- xtuoj-stack
- xtuoj-年利率
- XTUOJ 1168 填颜色
- xtuoj-立方和
- xtuoj 1246Heartstone
- grid
- grid
- Grid
- Grid
- grid
- Grid
- grid
- Grid
- XTUOJ-1058 青蛙王子的一种实现
- xtuoj 1187 Double Maze (2014XTU校赛)
- XTUOJ 1142 Collatz Conjecture(数论)
- XTUOJ 1144 Echo(字符串的处理)
- Java提高篇(二八)------TreeSet
- DataGridView控件选中单元格、直接在控件中修改信息
- ubuntu中JK + Apache 2.x + Tomcat 7实现群集完整过程
- Welcome to XTCPC
- 黑马程序员---享元设计模式Flyweight
- xtuoj-grid
- 读《Machine Learning Done Wrong》(机器学习易犯错误)有感
- Linux Shell编程case语句
- Alice and Bob
- Intent跳转到系统应用中的拨号界面、联系人界面、短信界面及其他
- mtk系统定制注意事项—
- MOno C# 开发自动更新的时候出现签名冲突 的问题
- 最近常用的sql语句
- 一种整数数据压缩存储的算法实现