uva 10105 多项式系数 (排列与组合)
2011-08-15 20:49
302 查看
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <cctype>
#include <cmath>
#define LOCAL
#define M 20
using namespace std;
int c[M][M];
void Combination() // 将所有的C(n,k)都计算了,时间复杂度为O(N^2);
{
memset(c,0,sizeof(c));
for(int i = 0;i <= 16;i++)
{
c[i][0] = 1;
for(int k = 1;k <= i;k++)
c[i][k] = c[i-1][k-1] + c[i-1][k];
}
}
/*
//另一种较快的方法针对特定的一个N, C(n,k) = (n-k+1)/k * C(n,k-1)
C[0] = 1;
for(int i = 1;i <= n;i++) C[i] = C[i-1]*(n-i+1)/i;
*/
int main()
{
#ifdef LOCA
freopen("in.in","r",stdin);
#endif
int n,k;
int q[M];
Combination();
while(cin>>n>>k)
{
for(int i = 0;i < k;++i)
cin>>q[i];
int sum = 1,cnt = n;
for(int i = 0;i < k;++i)
{
sum *= c[cnt][q[i]];
cnt -= q[i];
}
cout<<sum<<endl;
}
return 0;
}
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <cctype>
#include <cmath>
#define LOCAL
#define M 20
using namespace std;
int c[M][M];
void Combination() // 将所有的C(n,k)都计算了,时间复杂度为O(N^2);
{
memset(c,0,sizeof(c));
for(int i = 0;i <= 16;i++)
{
c[i][0] = 1;
for(int k = 1;k <= i;k++)
c[i][k] = c[i-1][k-1] + c[i-1][k];
}
}
/*
//另一种较快的方法针对特定的一个N, C(n,k) = (n-k+1)/k * C(n,k-1)
C[0] = 1;
for(int i = 1;i <= n;i++) C[i] = C[i-1]*(n-i+1)/i;
*/
int main()
{
#ifdef LOCA
freopen("in.in","r",stdin);
#endif
int n,k;
int q[M];
Combination();
while(cin>>n>>k)
{
for(int i = 0;i < k;++i)
cin>>q[i];
int sum = 1,cnt = n;
for(int i = 0;i < k;++i)
{
sum *= c[cnt][q[i]];
cnt -= q[i];
}
cout<<sum<<endl;
}
return 0;
}
相关文章推荐
- Uva 580 排列组合
- UVa 729 - The Hamming Distance Problem 排列组合
- UVA 12906 Maximum Score 排列组合
- UVALive 6469 Deranged Exams (排列组合:绝逼是纯纯的高中知识啊)
- 排列组合·UVA 11076·排列之和
- 排列组合,递推(比赛名次,uva 12034)
- UVA - 557 Burger 排列组合 概率
- 【排列组合】UVALive - 6926 Maximum Score
- UVALive-8079 Making a Team 排列组合公式化简
- Polynomial Coefficients - UVa 10105 多项式系数
- UVA 12712 Pattern Locker(简单排列组合数学题)
- uva 10105 - Polynomial Coefficients(多项式系数)
- UVA - 11027 Palindromic Permutation 排列组合
- UVa 11076 - Add Again (排列之和 组合数学)
- UVa 10105 Polynomial Coefficients(组合数学)
- UVa 10290 {Sum+=i++} to Reach N (数论-整数和素数,组合数学-排列组合)
- UVa Problem 10105 Polynomial Coefficients (多项式系数)
- (组合数学3.3.2.2)UVA 10497 - Sweet Child Makes Trouble(特殊的排列问题——错排方案数)
- UVa 11538 Chess Queen (排列组合计数)
- UVALive 6909 Kevin's Problem 数学排列组合