#include <stdio.h>
#include <string.h>
#include <math.h>


int Num[101][101],Add[101][101];

int n ,k;

int main()
  {

memset(Num,0,sizeof(Num));
memset(Add,0,sizeof(Add));
Add[3][1]=1,Add[3][2]=0,Add[3][3]=0;
Add[4][1]=1,Add[4][2]=2,Add[4][3]=2,Add[4][4]=2;
Add[5][1]=1,Add[5][2]=6,Add[5][3]=12,Add[5][4]=18,Add[5][5]=24;

int i, j;

for(i=6;i<=100;i++)
 {
Add[i][2]=(int)pow(2,i-2)-2;
for(j=3;j<=i;j++)
Add[i][j]=Add[i-1][j-1]+Add[i][j-1];
}

for(i=3;i<=100;i++)
 {
Num[i][1]=1;
for(j=2;j<=i;j++)
Num[i][j]=Num[i][j-1]+Add[i][j];
}

int t;
scanf("%d",&t);
while(t--)
 {
scanf("%d%d",&n,&k);
printf("%d\n",Num[n][n-k+1]);
}
return 0;
}
结果是错的。。。。
|
|
|