60分WA,蒟蒻求助
查看原帖
60分WA,蒟蒻求助
547908
NightTide楼主2021/8/1 12:21
#include<bits/stdc++.h>
using namespace std;
struct coor{
    int x,y;
};
int dx[8]={2,1,-1,-2,-2,-1,1,2};
int dy[8]={1,2,2,1,-1,-2,-2,-1};
coor horse,b;
bool broad[100][100];
long long step[100][100];
void init(){
    broad[horse.x][horse.y]=1;
    broad[horse.x+1][horse.y+2]=1;
	for(int i=0;i<=7;i++){
		 if(horse.x+dx[i]>=0&&horse.x+dx[i]<=b.x&&horse.y+dy[i]>=0&&horse.y+dy[i]<=b.y){
		 	broad[horse.x+dx[i]][horse.y+dy[i]]=1;
		 }
	}
	for(int i=0;i<=b.y;i++){
		if(!broad[0][i])
			step[0][i]=1;
	}
	for(int i=0;i<=b.x;i++){
		if(!broad[i][0])
			step[i][0]=1;
	}
}
int main(){
    cin>>b.x>>b.y>>horse.x>>horse.y;
    memset(step,0,sizeof(step));
    memset(broad,0,sizeof(broad));
    init();
//    for(int i=0;i<=b.x;i++){
//    	for(int j=0;j<=b.y;j++){
//    		cout<<broad[i][j]<<" ";
//		}
//		cout<<endl;
//	}
	if(broad[0][0]){
		cout<<"0"<<endl;
		exit(0);
	}
    for(int i=1;i<=b.x;i++){
    	for(int j=1;j<=b.y;j++){
    		if(!broad[i][j]){
    			step[i][j]=max(step[i-1][j]+step[i][j-1],step[i][j]);
			}else {
				step[i][j]=0;
			}
		}
	}
//    for(int i=0;i<=b.x;i++){
//    	for(int j=0;j<=b.y;j++){
//    		cout<<step[i][j]<<" ";
//		}
//		cout<<endl;
//	}
	cout<<step[b.x][b.y]<<endl;
	return 0;
}

不懂为什么错,求助大佬

2021/8/1 12:21
加载中...