0
点赞
收藏
分享

微信扫一扫

镜子田地(找规律)

秀妮_5519 2022-02-26 阅读 34

题目描述:

在这里插入图片描述

主要思路:

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=1010;
char a[N][N];
int n,m;
int dis[][2]={-1,0,1,0,0,-1,0,1};
int dfs(int x,int y,int w)
{
    if(x<1||y<1||x>n||y>m) return 0;
    if(a[x][y]=='\\')
        w^=2;
    else 
        w^=3;
    return dfs(x+dis[w][0],y+dis[w][1],w)+1;
}
int main()
{
    std::ios::sync_with_stdio(false);
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
            cin>>a[i][j];
    }
    int ans=0;
    for(int i=1;i<=m;i++)//竖直上下
    {
        ans=max(ans,dfs(1,i,1));
        ans=max(ans,dfs(n,i,0));
    }
    for(int i=1;i<=n;i++)
    {
        ans=max(ans,dfs(i,1,3));
        ans=max(ans,dfs(i,m,2));
    }
    cout<<ans<<endl;
    return 0;
}
举报

相关推荐

0 条评论