2017省赛A第1题

 注意事项

  注意更换状态

 

 

#include<bits/stdc++.h>
using namespace std;
char maps[11][11];
int vis[11][11];
int ans=0;
void input()
{
    ifstream infile;
    infile.open("input.txt");
    for(int i=1;i<=10;i++){
        for(int j=1;j<=10;j++){
            infile>>maps[i][j];
        }
    }
}
void dfs(int x,int y)
{
    if(x<1||x>10||y<1||y>10){
        ans++;
        return ;
    }
    if(vis[x][y]==1)    return;
    vis[x][y]=1;//注意更换状态
    if(maps[x][y]=='U')     dfs(x-1,y);
    if(maps[x][y]=='D')     dfs(x+1,y);
    if(maps[x][y]=='L')     dfs(x,y-1);
    if(maps[x][y]=='R')     dfs(x,y+1);
    return;
}
void print()
{
    for(int i=1;i<=10;i++){
        for(int j=1;j<=10;j++){
            cout<<maps[i][j]<<" ";
        }
        cout<<endl;
    }
}
int main()
{
    input();
    for(int i=1;i<=10;i++){
        for(int j=1;j<=10;j++){
            memset(vis,0,sizeof(vis));
            dfs(i,j);
        }
    }
    //print();
    cout<<ans;
    return 0;
}

 

posted @ 2021-04-16 12:06  南理工学渣  阅读(16)  评论(0编辑  收藏  举报