#3#10#11#1 TLE,大佬帮忙看看

P1141 01迷宫

同问
by coding2024 @ 2024-03-15 19:40:13


@[Be_myself](/user/865056) ``` #include<iostream> #include<cstring> #include<cstdio> using namespace std; int fx[5]={-1,0,0,1},fy[5]={0,-1,1,0},ans[100005]; bool mp[1050][1050]; int visited[1050][1050]; int s,n,m; void f(int x,int y,int sign,int v) { //cout<<x<<' '<<y<<' '<<sign<<endl; if(x<0||x>=n||y<0||y>=n) return; if(mp[x][y]==sign||visited[x][y]) return; s++; visited[x][y]=v; for(int i=0;i<4;i++) { f(x+fx[i],y+fy[i],mp[x][y],v); } return; } int main() { cin>>n>>m; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { char t; cin>>t; // cout<<"aa "<<t<<endl; mp[i][j]=t-'0'; } } for(int i=0;i<m;i++) { int x,y; cin>>x>>y; if(visited[x-1][y-1]) { cout<<ans[visited[x-1][y-1]]<<endl; }else { s=0; f(x-1,y-1,!mp[x-1][y-1],i+1); ans[i+1]=s; cout<<s<<endl; } } return 0; } ```
by xxc123 @ 2024-03-15 21:00:42


```c #include<iostream> #include<cstring> #include<cstdio> using namespace std; int fx[5]={-1,0,0,1},fy[5]={0,-1,1,0},ans[100005]; bool mp[1050][1050]; int visited[1050][1050]; int s,n,m; void f(int x,int y,int sign,int v) { //cout<<x<<' '<<y<<' '<<sign<<endl; if(x<0||x>=n||y<0||y>=n) return; if(mp[x][y]==sign||visited[x][y]) return; s++; visited[x][y]=v; for(int i=0;i<4;i++) { f(x+fx[i],y+fy[i],mp[x][y],v); } return; } int main() { cin>>n>>m; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { char t; cin>>t; // cout<<"aa "<<t<<endl; mp[i][j]=t-'0'; } } for(int i=0;i<m;i++) { int x,y; cin>>x>>y; if(visited[x-1][y-1]) { cout<<ans[visited[x-1][y-1]]<<endl; }else { s=0; f(x-1,y-1,!mp[x-1][y-1],i+1); ans[i+1]=s; cout<<s<<endl; } } return 0; } ``` @[Be_myself](/user/865056)
by xxc123 @ 2024-03-15 21:01:23


|