测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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)
上一题 下一题