poj3620 深搜

2019-12-02  本文已影响0人  暖昼氤氲
 /*
Time:2019.12.2 
Author: Goven
type:深搜 
err:RUNTIME ERR
ref:
*/
#include<iostream>
#include<cstring>
using namespace std;

int g[105][105];
bool visit[105][105];
int r[10005], c[10005];//RUNTIME ERR:数组开太小了 

int dfs(int r, int c) {
    if (visit[r][c] == true || g[r][c] == 0) return 0;
    visit[r][c] = true;
    return 1 + dfs(r + 1, c) + dfs(r - 1, c) + dfs(r, c + 1) + dfs(r, c - 1); //r\c边界不需要另外判断 
}
int main()
{
    memset(g, 0, sizeof(g));
    memset(visit, false, sizeof(visit));
    
    int n, m, k;
    cin >> n >> m >> k;
    for (int i = 0; i < k; i++) {
        cin >> r[i] >> c[i];
        g[r[i]][c[i]] = 1;
    }
    int res = 0;
    for (int i = 0; i < k; i++) {
        res = max(res, dfs(r[i], c[i]));
    }
    cout << res << endl;
    return 0;
}

上一篇下一篇

猜你喜欢

热点阅读