动态规划全WA,请大佬帮忙
查看原帖
动态规划全WA,请大佬帮忙
775208
Alvin1204楼主2023/8/25 21:05
#include<bits/stdc++.h>
using namespace std;
bool isdight(char s){
	if(s>='0'&&s<='9') return 1;
	return 0;
}
int read(){
	int f=1;
	int x=0;
	char s=getchar();
	while(!isdight(s)){
		if(s=='-') f=-1;
		s=getchar();
	}
	while(isdight(s)){
		x=x*10+s-'0';
		s=getchar();
	}
	return f*x;
}
void write(int x){
	if(x<0) putchar('-'),x=-x;
	if(x>9) write(x/10);
	putchar(x%10+'0');
}
int dx[]={-2,-2,-1,-1,1,1,2,2};
int dy[]={1,-1,2,-2,2,-2,1,-1};
int mp[25][25],dp[225][25];
int main(){
	int n=read(),m=read();
	int x=read(),y=read();
	for(int i=0;i<8;i++){
		int nx=dx[i]+x,ny=y+dy[i];
		if(nx<0||ny<0||nx>n||ny>m) continue;
		mp[nx][ny]=-1;
	}
	for(int i=0;i<=n;i++) dp[i][0]=1;
	for(int i=0;i<=m;i++) dp[0][m]=1;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++){
			if(mp[i][j]==-1) continue;
			if(mp[i-1][j]!=-1) dp[i][j]+=dp[i-1][j];
			if(mp[i][j-1]!=-1) dp[i][j]+=dp[i][j-1];
		}
	write(dp[n][m]);
	return 0;
} 
2023/8/25 21:05
加载中...