UVa 369 - Combinations
2013-10-22 16:14
387 查看
题目:大组合数计算。
分析:简单题、组合数学、大整数模拟。
计算组合数的方法很多,本题数据量不是很大,直接利用地推公式打表即可。
分析:简单题、组合数学、大整数模拟。
计算组合数的方法很多,本题数据量不是很大,直接利用地推公式打表即可。
#include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> using namespace std; int C[101][101][51]; int main() { memset( C, 0, sizeof(C) ); for ( int i = 1 ; i <= 100 ; ++ i ) C[i][0][0] = C[i][i][0] = 1; for ( int i = 1 ; i <= 100 ; ++ i ) for ( int j = 1 ; j < i ; ++ j ) { for ( int k = 0 ; k <= 50 ; ++ k ) C[i][j][k] = C[i-1][j-1][k]+C[i-1][j][k]; for ( int k = 0 ; k <= 50 ; ++ k ) if ( C[i][j][k] > 9 ) { C[i][j][k+1] += C[i][j][k]/10; C[i][j][k] %= 10; } } int n,m,k; while ( cin >> n >> m && n ) { k = m; if ( n < 2*m ) m = n-m; int end = 50; while ( end > 0 && !C [m][end] ) -- end; printf("%d things taken %d at a time is ",n,k); while ( end >= 0 ) printf("%d",C [m][end --]); printf(" exactly.\n"); } return 0; }
相关文章推荐
- UVa:369 Combinations
- UVA 369题Combinations(一个排列组合问题)
- UVa369 - Combinations
- UVa 369 - Combinations
- POJ1306 UVA369 UVALive5341 Combinations【组合计算】
- UVa 369 Combinations (用double算组合数)
- UVA, 369 conbinations
- 369 - Combinations
- uva 529 - Addition Chains
- Uva 10887
- UVALive 5913 Dictionary Size 解题报告
- uva 11138 - Nuts and Bolts(二分匹配)
- UVA11389-The Bus Driver Problem
- UVa 127 - "Accordian" Patience(模拟)
- uva 10453 回文串dp uva 10739 uva 11151最长回文串 poj 3280
- uvalive 6957 Hyacinth 题目难理解
- UVA 12230(p333)----Crossing Rivers
- 最大流,欧拉回路(混合图的欧拉回路,uva 10735)
- 算法之路二:刘汝佳算法竞赛入门经典:栈和队列 矩阵链乘UVA442
- UVA 11885 - Number of Battlefields(斐波那契)