A33748. 有一张 N 行 N 列的网格纸,网格中每个小格子都是 1×1 的正方形,有些格子被填充成橙色。请数一数橙色区域一共有多少个矩形。例如:N = 4,4 行 4 列的网格纸如下图:图中网格纸的橙色区域一共有 7 个矩形。输入描述第一行输入一个正整数 N(2≤N≤50)接下来输入 N 行,每行 N 个整数(整数只能为 1 或 0 ),其中 1 表示填充成橙色,0 表示没有填充成橙色,整数之间以一个空格…
填空题
困难
知识点
题目描述
有一张 N 行 N 列的网格纸,网格中每个小格子都是 1×1 的正方形,有些格子被填充成橙色。请数一数橙色区域一共有多少个矩形。
例如:N = 4,4 行 4 列的网格纸如下图:

图中网格纸的橙色区域一共有 7 个矩形。
输入描述
第一行输入一个正整数 N(2≤N≤50)
接下来输入 N 行,每行 N 个整数(整数只能为 1 或 0 ),其中 1 表示填充成橙色,0 表示没有填充成橙色,整数之间以一个空格隔开
输出描述
输出一个整数,表示橙色区域的矩形数量
样例输入
4
1001
0000
1001
0110
样例输出
7
参考答案
n=int(input())
ls=[]
for i in range(n):
lst=list(input())
ls.append(lst)
def judge(x,y,a,b):
for i in range(a):
for j in range(b):
if ls[x+i][y+j]!='1':
return False
return True
res=0
for a in range(1,n+1):
for b in range(1,n+1):
for x in range(n-a+1):
for y in range(n-b+1):
if judge(x,y,a,b):
res+=1
print(res)
上一题
下一题