本文主要是介绍*求问?:为何会超时(TLE)?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
D - Grid and Magnet (atcoder.jp)
错误代码:
//2024年5月5日14:53:43
#include <bits/stdc++.h>
#define move mmove //防止与头文件中重复
using namespace std;
int h,w;
string s[1000];
const int move[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
bool used[1000][1000];
int cnt=0;
void dfs(int x,int y){used[x][y]=true;cnt++;if(s[x][y]=='*'){return ;}else{for(int i=0;i<4;i++){int X,Y;X=x+move[i][0];Y=y+move[i][1];if(X>=0&&X<h&&Y>=0&&Y<w&&s[X][Y]!='#'&&!used[X][Y]){dfs(X,Y);}}}return ;
}
int main(){cin>>h>>w;for(int i=0;i<h;i++){cin>>s[i];}//预处理for(int i=0;i<h;i++){for(int j=0;j<w;j++){if(s[i][j]=='#'){for(int k=0;k<4;k++){int I,J;I=i+move[k][0];J=j+move[k][1];if(I>=0&&I<h&&J>=0&&J<w&&s[I][J]!='#'){s[I][J]='*';}}}}}//深搜int maxv=1;//至少有一个for(int i=0;i<h;i++){for(int j=0;j<w;j++){if(s[i][j]=='.'){memset(used,false,sizeof(used));cnt=0;dfs(i,j);maxv=max(maxv,cnt);}}}cout<<maxv;return 0;
}
这篇关于*求问?:为何会超时(TLE)?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!