DP,看了大神的博客后写出来的,哈哈!
#include<stdio.h>
#define MAXN 101
int dp[MAXN][MAXN][2];
int ways()
{
int i,j;
dp[0][1][1] = dp[0][1][0] = 1;
for(j = 2; j < MAXN; j++)
{
dp[0][j][0] = dp[0][j-1][1] + dp[0][j-1][0];
dp[0][j][1] = dp[0][j-1][0];
}
for(i = 1; i < MAXN; i++)
for(j = 1; j < MAXN; j++)
{
dp[i][j][0] = dp[i][j-1][0] + dp[i][j-1][1];
dp[i][j][1] = dp[i-1][j-1][1] + dp[i][j-1][0];
}
return 0;
}
int main()
{
int k,n,p;
ways();
scanf("%d",&k);
while(k--)
{
scanf("%d%d",&n,&p);
printf("%d\n",dp[p][n][0] + dp[p][n][1]);
}
return 0;
}