hpu
递推吧,勉强算是动态规划,搜索的话会超时。
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #define LL long long using namespace std; const int N = 33; LL map[N][N]; int main() { int T; scanf("%d",&T); while(T--) { int n,x,y; scanf("%d%d%d",&n,&x,&y); memset(map,0,sizeof(map)); for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { if(i==x&&j==y) map[i][j]=0; else if(i==1&&j==1) map[i][j]=1; else map[i][j]=map[i][j-1]+map[i-1][j]; } } if(!map[n][n]) //此处不能用if(x==n&&y==n) printf("-1\n"); else printf("%d\n",map[n][n]%1000000007); } return 0; }