社区讨论
求助马走日
灌水区参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @m56k4j79
- 此快照首次捕获于
- 2024/12/27 17:35 去年
- 此快照最后确认于
- 2024/12/27 17:35 去年
CPP
#include<bits/stdc++.h>
using namespace std;
int a[15][15];
int t;
int n,m,x,y;
int dx[10]={0,-1,-2,-2,-1,1,2,1,2};
int dy[10]={0,-2,-1,1,2,-2,-1,2,1};
int xx,yy;
int sss;
int num=0;
int zongzong=0;
bool flag=false;
void f(int x,int y)
{
if(num==n*m)
{
zongzong+=1;
return;
}
for(int i=1;i<=8;i++)
{
xx=x+dx[i];
yy=y+dy[i];
if(xx>=0&&xx<n&&yy>=0&&yy<m&&a[xx][yy]==0)
{
a[x][y]=1;
num++;
f(xx,yy);
a[x][y]=0;
num--;
}
}
}
int main()
{
cin>>t;
for(int i=1;i<=t;i++)
{
cin>>n>>m>>x>>y;
memset(a,0,sizeof(a));
flag=false;
if((n<0||n>=10)||(m<0||m>=10)||(x<0||x>n-1||x>m-1)||(y<0||y>n-1||y>m-1))
{
cout<<"0"<<endl;
continue;
}
a[x][y]=1;
num=1;
zongzong=0;
f(x,y);
cout<<zongzong<<endl;
}
return 0;
}
只有40分,真的搞不懂
回复
共 0 条回复,欢迎继续交流。
正在加载回复...