文章

34

粉丝

89

获赞

3

访问

20.5k

头像
石油储藏 题解:dfs求解
P1564 中国科学院大学2021年机试题
发布于2024年3月16日 15:19
阅读数 602

#include<bits/stdc++.h>
using namespace std;
int m,n;
bool isVisit[105][105] = {false};
char a[105][105];
int dir[8][2] = {0,1,1,1,1,0,1,-1,0,-1,-1,-1,-1,0,-1,1};
void dfs(int x,int y){
    isVisit[x][y] = true;
    for(int i = 0;i < 8;i++){
        int nx = x + dir[i][0];
        int ny = y + dir[i][1];
        if(nx >= 0 && nx < m && ny >= 0 && ny < n && !isVisit[nx][ny] && a[nx][ny] == '@'){
            dfs(nx,ny);
        }
    }
}

int main(){
    while(cin >> m >> n){
        if(m==0 && n==0) break;
        memset(isVisit,false,sizeof(isVisit));
        int ans = 0;
        for(int i = 0;i < m;i++){
            for(int j = 0;j < n;j++){
                cin >> a[i][j];
            }
        }
        for(int i = 0;i < m;i++){
            for(int j = 0;j < n;j++){
                if(a[i][j] == '@'&& !isVisit[i][j]){
          ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发