求助!为什么wa了
查看原帖
求助!为什么wa了
199186
SnowLin楼主2022/3/6 19:19
#include<bits/stdc++.h>
using namespace std;
int n,m,ans,sum;
int aa[1005],b[1005];
int s[1005][1005];
char a[1005][1005];
void tc(int x,int y){
	if(a[x-1][y]=='d'&&s[x-1][y]==0){
		s[x-1][y]=1;
		tc(x-1,y);
	}
	if(a[x][y-1]=='r'&&s[x][y-1]==0) {
		s[x][y-1]=1;
		tc(x,y-1);
	}
	if(a[x][y+1]=='l'&&s[x][y+1]==0) {
		s[x][y+1]=1;
		tc(x,y+1);
	}
	if(a[x+1][y]=='u'&&s[x+1][y]==0){
		s[x+1][y]=1;
		tc(x+1,y);
	}
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	    for(int j=1;j<=m;j++){
	    	cin>>a[i][j];
	    	if(a[i][j]=='o') {
	    		s[i][j]=1;
				aa[++ans]=i,b[ans]=j;
			}
	    	
		}
	/*for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			int af=a[i][j];
			if(a[i][j]=='u') cout<<"↑"; 
			if(a[i][j]=='d') cout<<"↓"; 
			if(a[i][j]=='l') cout<<"←"; 
			if(a[i][j]=='r') cout<<"→"; 
			if(a[i][j]=='o') cout<<"o ";
		}
		cout<<endl;
	}*/
	//cout<<"ans "<<ans<<endl;
	for(int i=1;i<=ans;i++)
	    tc(aa[i],b[i]);
	for(int i=1;i<=n;i++){
	    for(int j=1;j<=m;j++){
	    	sum+=s[i][j];
	    	//cout<<s[i][j];
		}
		//cout<<endl;		
	}
	//cout<<endl<<a[aa[1]-1][b[1]];
	printf("%d",sum);	
}
2022/3/6 19:19
加载中...