时间这么紧的吗,我优化过后还0分
查看原帖
时间这么紧的吗,我优化过后还0分
672360
Ch35楼主2022/8/11 19:28

全TLE,我是不是方法用错了?

#include<bits/stdc++.h>
using namespace std;
int n,m,cnt,b[10005][10005];
char a[10005][10005];
bool e=0;
void dfs(int x,int y){
	if(a[x][y]=='o'){e=1;cnt++;return;}
	if(e==1)return;
	if(a[x][y]=='u'&&x-1>0&&b[x-1][y]==0){
		b[x-1][y]=1;
		dfs(x-1,y);
		b[x-1][y]=0;
	}
	if(a[x][y]=='d'&&x+1<=n&&b[x+1][y]==0){
		b[x+1][y]=1;
		dfs(x+1,y);
		b[x+1][y]=0;
	}
	if(a[x][y]=='l'&&y-1>0&&b[x][y-1]==0){
		b[x][y-1]=1;
		dfs(x,y-1);
		b[x][y-1]=0;
	}
	if(a[x][y]=='r'&&y+1<=m&&b[x][y+1]==0){
		b[x][y+1]=1;
		dfs(x,y+1);
		b[x][y+1]=0;
	}
	
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++)cin>>a[i][j];
		
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			b[i][j]=1;
			dfs(i,j);
			e=0;
			for(int k=1;k<=n;k++){
				for(int l=1;l<=m;l++)b[k][l]=0;
			}
	}
	}
	cout<<cnt;
	return 0;
}
2022/8/11 19:28
加载中...