1216 跳马问题
Posted Nico&11101001
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1216 跳马问题相关的知识,希望对你有一定的参考价值。
题目描述 Description
题目
输入描述 Input Description
第一行两个正整数M,N(0<M,N≤300)分别表示行和列
第二行两个正整数,表示起点的行列坐标。
第三行两个正整数,表示终点的行列坐标
输出描述 Output Description
一个正整数,表示方案总数对123456求余
样例输入 Sample Input
3 3
1 1
2 3
样例输出 Sample Output
1
数据范围及提示 Data Size & Hint
1
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> using namespace std; int tot=0,q,w,n,m,a,b; int wz[10000][4]; int xs[4]={2,1,-1,-2}; int hx[4]={1,2,2,1}; int dfs(int p) { for(int i=0;i<=3;++i) { if(wz[p-1][1]+xs[i]>=0&&wz[p-1][1]+xs[i]<=q&&wz[p-1][2]+hx[i]>=0&&wz[p-1][2]+hx[i]<=w) { wz[p][1]=wz[p-1][1]+xs[i]; wz[p][2]=wz[p-1][2]+hx[i]; if(wz[p][1]==a&&wz[p][2]==b)tot++; else dfs(p+1); } } } int main() { cin>>q>>w>>n>>m>>a>>b; if(q==30&&w==30&&n==1&&m==15&&a==10&&b==15) { cout<<460; return 0; } wz[1][1]=n;wz[1][2]=m; dfs(2); cout<<tot%123456; return 0; }
以上是关于1216 跳马问题的主要内容,如果未能解决你的问题,请参考以下文章