蒟蒻dp60分求助,#3#4WA
查看原帖
蒟蒻dp60分求助,#3#4WA
242612
dingyutong01楼主2020/10/20 22:30

话说这不算抄题解吧

#include<iostream>
#include<algorithm>
using namespace std;
int x,y,m,n;
int dirx[9]={0,-2,-1,1,2,-2,-1,1,2},diry[9]={0,-1,-2,-2,-1,1,2,2,1};
bool vis[21][21];
unsigned long long f[101][101];
int main(){
	cin>>x>>y>>m>>n;
	x+=2;
	y+=2;
	m+=2;
	n+=2;
	vis[m][n]=1;
	f[2][2]=1;
	for(int i=1;i<=8;i++) vis[m+dirx[i][n+diry[i]]=1;
	for(int i=2;i<=x;i++){
		for(int j=2;j<=y;j++){
			if(vis[i][j]) continue;
			f[i][j]=max(f[i-1][j]+f[i][j-1],f[i][j]);
		}
	}
	cout<<f[x][y];
	return 0;
}
2020/10/20 22:30
加载中...