dalao们能不能看看小菜鸡的全WA代码
查看原帖
dalao们能不能看看小菜鸡的全WA代码
465055
1004779564bzbjj楼主2023/7/28 11:48
#include <bits/stdc++.h>
using namespace std;
int n,m;
int v[1145][1145];//-1:no 0:unknown 1:yes 2:alr
char mp[1145][1145];
struct node{
	int x,y;
}b[1919810];
int main(){
    cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>mp[i][j];
			if(mp[i][j]=='o')v[i][j]=1;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			string st=" ";
			int x=i,y=j;
			int ans=1;
			while(v[x][y]==0){
				if(x>n||y>m||x<1||y<1){
					//cout<<x<<" "<<y<<"  "<<n<<" "<<m<<endl;
					ans=-1;
					break;
				}
				st=st+mp[x][y];
				//cout<<x<<" "<<y<<" "<<mp[x][y]<<endl;
				v[x][y]=2;
				if(mp[x][y]=='u')x--;
				else if(mp[x][y]=='d')x++;
				else if(mp[x][y]=='l')y--;
				else if(mp[x][y]=='r')y++;
				
			}
			int l=st.size()-1;
			//if(l>0)
			//cout<<st<<endl;
			for(int k=l;k>=1;k--){//回溯
				if(st[k]=='u')x++;
				else if(st[k]=='d')x--;
				else if(st[k]=='l')y++;
				else if(st[k]=='r')y--;
				v[x][y]=ans;
			}
		}
	}
	int tnt=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(v[i][j]==1)tnt++;
			//cout<<v[i][j]<<" ";
			//if(v[i][j]!=-1)cout<<" ";
		}
		//cout<<endl;
	}cout<<tnt;
   return 0;
}
2023/7/28 11:48
加载中...