2 条题解

  • 2
    @ 2025-3-23 0:04:53

    食用性更强的 DFS 代码!

    #include<bits/stdc++.h>
    using namespace std;
    const long long maxn=1e3+5;
    long long T,k,i,j,bx,by;
    char ch[maxn][maxn];
    long long vis[maxn][maxn],dx[]={1,-1,0,0},dy[]={0,0,1,-1};
    bool flag;
    void dfs(long long x,long long y)
    {
    	if(vis[x][y]) return;
    	vis[x][y]=1;
    	if(flag==true) return;
    	if(ch[x][y]=='L')
    	{
    		flag=true;
    		return;
    	}
    	for(long long it=0;it<4;it++)
    	{
    		long long hx=x+dx[it],hy=y+dy[it];
    		if(hx>k || hx<1 || hy>k || hy<1 || vis[hx][hy] || ch[hx][hy]=='X') continue;
    		//cout<<hx<<" "<<hy<<"\n";
    		dfs(hx,hy);
    	}
    	return;
    }
    int main()
    {
    	freopen("honey1.in","r",stdin);
    	freopen("honey1.out","w",stdout);
    	ios::sync_with_stdio(false);
    	cin>>T;
    	while(T--)
    	{
    		flag=false;
    		cin>>k;
    		for(i=1;i<=k;i++)
    		{
    			for(j=1;j<=k;j++)
    			{
    				cin>>ch[i][j];
    				if(ch[i][j]=='B') bx=i,by=j;
    				vis[i][j]=0;
    			}
    		}
    		//cout<<bx<<" "<<by<<"\n";
    		dfs(bx,by);
    		if(flag) puts("Yes");
    		else puts("No");
    	}
    	return 0;
    }
    //Sleeping Cup can be better!
    //CSP2024RP+=INF!
    
    • @ 2025-3-24 21:53:00

      这么牛!?隔壁 的 DFS 甚至被卡到了 0 pts。

信息

ID
30
时间
1000ms
内存
512MiB
难度
3
标签
递交数
25
已通过
4
上传者