40分,求助!!!
查看原帖
40分,求助!!!
1070708
Caged_Bird楼主2023/8/25 12:56
#include<bits/stdc++.h>
using namespace std;
int main(){
	int m,n,mx,my,x0=0,y0=0;
	bool mp[25][25]={0};
	long long d[25][25];
	cin>>m>>n>>mx>>my;/*输入,因为n,m不好看,我改成了m,n*/ 
	mp[mx][my]=1;
	mp[mx+2][my+1]=1;
	mp[mx+2][my-1]=1;
	mp[mx-2][my+1]=1;
	mp[mx-2][my-1]=1;
	mp[mx+1][my+2]=1;
	mp[mx+1][my-2]=1;
	mp[mx-1][my+2]=1;
	mp[mx-1][my-2]=1;/*地图初始化,所有马踩到的点全部为1,其余为0*/ 
	for(int i=0;i<=n;i++)d[0][i]=1;
	for(int i=1;i<=m;i++)d[i][0]=1;/*初始化第一行路径数和第一列路径数为1*/ 
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			if(mp[i][j]==0)/*判断没有被马踩到*/ 
				d[i][j]=d[i-1][j]+d[i][j-1]; /*状态转换方程*/ 
			else d[i][j]=0;/*被马踩到则路径数为0*/ 
		}
	}
	cout<<d[m][n]; 
	return 0;
}
2023/8/25 12:56
加载中...