找最大正方形矩阵

#include<bits/stdc++.h> 
using namespace std;
const int N = 1e3 + 10;
int g[N][N];
int n, m;
int f[N][N];
int main()
{
    
    
        cin >> n >> m;
        for (int i = 1; i <= n; i ++ )
        {
    
    
                for (int j = 1; j <= m; j ++ )
                {
    
    
//                        char c; cin >> c;
//                        if (c == 'F') g[i][j] = 1;
//                        else g[i][j] = 0;
                        cin >> g[i][j];
                }
        }
        int ans = 0;
        for (int i = 1; i <= n; i ++ )
        {
    
    
                for (int j = 1; j <= m; j ++ )
                {
    
    
                        if (g[i][j])
                        {
    
    
                                f[i][j] = min(f[i - 1][j], min (f[i - 1][j - 1], f[i][j - 1])) + 1;
                                ans = max(f[i][j], ans);
                        }
                }
        }
                
//        }
        cout << ans << endl;
        return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_34682765/article/details/121892618