蒟蒻求助大佬
查看原帖
蒟蒻求助大佬
314240
Accepted喵楼主2020/8/5 10:18

样例都没过

#include<cstdio>
#include<cmath>
#include<iostream>
#include<cstdlib>
using namespace std;
int map[16][16];//地图 
bool flag[16][16];//走过的路进行标记 
int bx[4]={0,0,1,-1},by[4]={-1,1,0,0};//打表:方向+-!!!!!
int sum=0,sx=1,sy=1,fx,fy,T,r,l;//sum表示可行次数,sx&sy表示家的坐标 ,fx&fy表示家的坐标,T表示障碍物的个数
void walk(int x,int y){
	if(x==fx&&y==fy){
		sum++;
		return;
	}
	else{
		for(int i=0;i<4;i++){
			if(flag[x+bx[i]][y+by[i]]==0&&map[x+bx[i]][y+by[i]]){
				flag[x][y]=1;
				walk(x+bx[i],y+by[i]);
				flag[x][y]=0;
			}
		}
	}
}
int main(){
	scanf("%d%d",&fx,&fy);
	scanf("%d",&T);
	for(int i=0;i<fx-1;i++){
		for(int j=0;i<fy-1;j++){
			map[i][j]=1;
		}
	}
	for(int i=0;i<T;i++){
		scanf("%d%d",&r,&l);
		map[r][l]=0;
	}
	walk(sx,sy);
	printf("%d",sum);
	return 0;
}
2020/8/5 10:18
加载中...