QBCOND - Quan hệ có điều kiện

Tác giả: hieult

Ngôn ngữ: C++

#include <stdio.h>
//#include <conio.h>
main()
{
long long n,k,C[11][11],f[11][46];
for(long long i=0;i<=10;i++)
  for(long long j=0;j<=10;j++)
    C[i][j]=0;
for(long long i=1;i<=10;i++)
  for(long long j=i;j<=10;j++)
    {
    C[i][j]=1;
    for(long long k=2;k<=j;k++)
      C[i][j]*=k;
    for(long long k=2;k<=i;k++)
      C[i][j]=C[i][j]/k;
    for(long long k=2;k<=(j-i);k++)
      C[i][j]=C[i][j]/k;
    }
for(long long i=0;i<=10;i++)
  C[0][i]=1;     
for(long long i=0;i<=10;i++)
  for(long long j=0;j<=45;j++)
    f[i][j]=0;
f[0][0]=1;f[1][0]=1;
for(long long i=2;i<=10;i++)
  for(long long j=0;j<=i;j++)
     for(long long k=0;k<=C[2][i-j];k++)
       f[i][C[2][j]+k]=f[i][C[2][j]+k]+C[j][i]*f[i-j][k];
while(1)
  {
  scanf("%lld",&n);
  if(n==-1)
    break;
  scanf("%lld",&k);
  if(k>45)
    printf("0\n");
  else  
  printf("%lld\n",f[n][k]);
  }               
//getch();   
}        

Download