80分求救
查看原帖
80分求救
338786
mushroom_knight楼主2020/6/26 20:03

RT, 在学校oj运行这个数据的时候爆炸了,不知道是为啥

16 16 2 15

这个也是

20 15 19 13

(你谷上错误的原因应该差不多( 最后一个点挂了)

#include<bits/stdc++.h>
using namespace std;
#define IO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int dx[8]={2,2,-2,-2,-1,-1,1,1};
int dy[8]={1,-1,1,-1,2,-2,2,-2};
unsigned long long f[52][52];
bool vis[52][52];
void init(int x,int y){
	for(register int i=0;i<8;++i){
		int nx,ny;
		nx=x+dx[i];
		ny=y+dy[i];
		if(nx&&ny){
			vis[nx][ny]=true;
		}
	}
	vis[x][y]=true;
}
void dp_(int n,int m){
	for(register int i=0;i<=n;++i){
		for(register int j=0;j<=m;++j){
			if(vis[i][j]!=true){
				f[i+1][j]+=f[i][j];
				f[i][j+1]+=f[i][j];
			}		
	   }
	}
}
int n,m;
int ui,uj;
int main(){
	scanf("%d%d%d%d",&n,&m,&ui,&uj);
	init(ui,uj);
	f[0][0]=1;
	dp_(n,m);
	cout<<f[n][m];
	return 0;
}


2020/6/26 20:03
加载中...