字节笔试

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;
}

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

相关推荐

绝迹的星:前端和后端写两份简历, 如果想干全栈就直接写求职意向为全栈工程师
点赞 评论 收藏
分享
舂锋:不能投什么岗都用一份简历,一般都是要看企业的岗位需求来写职业技能或者是项目经历,跟岗位相关的就写多一点。
点赞 评论 收藏
分享
吴offer选手:下午mt一来就告警说项目来不及,估计明天拿了权限就要参与开发了 已老实
实习生的蛐蛐区
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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