[求助] 莫名其妙
查看原帖
[求助] 莫名其妙
963476
ms_xg_mx楼主2024/6/28 22:09
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int main(){
	int x1,y1,x2,y2;
	cin>>x2>>y2>>x1>>y1;
	int av[2][9] = {{x1,x1+2,x1+1,x1-1,x1-2,x1-2,x1-1,x1+1,x1+2},{y1,y1+1,y1+2,y1+2,y1+1,y1-1,y1-2,y1-2,y1-1}};
	int map[x2][y2]={0};
	for(int i=0;i<y2;i++){
		map[0][i]=0;
	}
	map[0][0]=1;
	for(int i=0;i<x2+y2;i++){
		for(int j=0;j<x2;j++){
			int x=j;
			int y=i-j;
			if(x!=0||y!=0&&x>=0&&y>=0&&x<x2){
				if(x>0) map[x][y]+=map[x-1][y];
				if(y>0) map[x][y]+=map[x][y-1];
				for(int a=0;a<9;a++){
					if(x==av[0][a]&&y==av[1][a]) map[x][y]=0;
				}
			}
		}
	}
	cout<<map[x2-1][y2-1];
	return 0;
}

想法:map[x][y]=map[x-1][y]+[x][y-1],如果map[x][y]是?或?的控制点则将map[x][y]设为0.

1111111
12?1?12
1?011?2
111?113
1?112?3
11?1?03
1223336

不知道为什么过不了

2024/6/28 22:09
加载中...