字节笔试

void dfs(vector<vector<char>>& arr,vector<vector<int>>&vistied,int x,int y,int& res){
    res++;
    int len_x=arr.size();
    int len_y=arr[0].size();
    vistied[x][y]=1;
    if(x-1>=0&&!vistied[x-1][y]&&(arr[x-1][y]=='D'||arr[x-1][y]=='.')) dfs(arr,vistied,x-1,y,res);
    if(x+1<len_x&&!vistied[x+1][y]&&(arr[x+1][y]=='U'||arr[x+1][y]=='.')) dfs(arr,vistied,x+1,y,res);
    if(y-1>=0&&!vistied[x][y-1]&&(arr[x][y-1]=='R'||arr[x][y-1]=='.')) dfs(arr,vistied,x,y-1,res);
    if(y+1<len_y&&!vistied[x][y+1]&&(arr[x][y+1]=='L'||arr[x][y+1]=='.')) dfs(arr,vistied,x,y+1,res);    
}
int main() {
    int n,m;
    cin>>n>>m;
    vector<vector<char>> mapp(n,vector<char>(m));
    int x,y;
    for(int i=0;i<n;i++){
        string aa;
        cin>>aa;
        for(int j=0;j<m;j++){
            mapp[i][j]=aa[j];
            if(mapp[i][j]=='O'){
                x=i;
                y=j;
            }
        }
    }
    vector<vector<int>> visited(n,vector<int>(m,0));
    int res=0;
    dfs(mapp,visited,x,y,res);
    cout<<m*n-res<<endl;
}

#原来字节劝退的只是我,罢了罢了#
全部评论

相关推荐

11-13 20:16
已编辑
厦门理工学院 软件测试
专业嗎喽:硕佬,把学校背景放后面几段,学校背景双非还学院,让人看了就不想往下看。 把实习经历和个人奖项放前面,用数字化简述自己实习的成果和掌握的技能,比如负责项目一次通过率90%,曾4次发现项目潜在问题风险为公司减少损失等等
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务