跳马问题
题目描述 Description
题目
输入描述 Input Description
第一行两个正整数M,N(0<M,N≤300)分别表示行和列
第二行两个正整数,表示起点的行列坐标。
第三行两个正整数,表示终点的行列坐标
输出描述 Output Description
一个正整数,表示方案总数对123456求余
样例输入 Sample Input
3 3
1 1
2 3
样例输出 Sample Output
1
代碼實現:
1 #include<cstdio> 2 const int mod=123456; 3 int m,n,qh,ql,zh,zl; 4 int map[300][300]; 5 int main(){ 6 scanf("%d%d%d%d%d%d",&n,&m,&ql,&qh,&zl,&zh); 7 map[qh][ql]=1; 8 for(int j=1;j<=m;j++) 9 for(int i=1;i<=n;i++){ 10 map[i-2][j+1]+=map[i][j]; 11 map[i-1][j+2]+=map[i][j]; 12 map[i+1][j+2]+=map[i][j]; 13 map[i+2][j+1]+=map[i][j]; 14 } 15 printf("%d\n",map[zh][zl]%mod); 16 return 0; 17 }
很經典的棋盤DP題~