题目描述
样例
input:
4 4
1 1 1 1
1 0 1 1
1 1 0 1
1 1 1 1
output:
3
input:
5 5
1 0 1 1 1
1 0 1 0 1
1 1 0 1 1
1 0 0 1 1
1 1 1 1 1
output:
3
题目大意
给定一个01矩阵,要求在里面找到一个子矩阵,满足:
1、这个矩阵的周围的一圈是1。
2、这个矩除了周围一圈,中间01数量之差最多为1。
3、这个矩阵至少为2*2。
求会有多少矩阵。
分析
数据范围是500,容易想到用 n 3 n^3 n3做法。
先来想最暴力的:
n 4 n^4 n4:枚举左上和右下端点,然后用一个矩阵的前缀和搞出里面的01之差,然后判断是否满足条件。枚举 n 4 n^4 n4,判断 O ( 1 ) O(1) O(1),总 O ( n 4 ) O(n^4) O(n4), T L E TLE