题解 | 矩形计数
矩形计数
https://www.nowcoder.com/practice/0ece8b3002c94320b8866ff0fc5d5fe0
n,m = map(int,input().split())
a = []
num_of_1_row = [0]*n
num_of_1_col = [0]*m
for i in range(n):
cur = list(map(int,input().split()))
# num_of_1_row.append(cur.count(1))
a.append(cur)
for i in range(n):
for j in range(m):
if a[i][j] == 1:
num_of_1_row[i] += 1
num_of_1_col[j] += 1
p = 10**9+7
sub1 = 0
sub2 = 0
for i in range(n):
sub1 = sub1 + ((pow(2,num_of_1_row[i],p)-1) + (pow(2,m-num_of_1_row[i],p)-1)) % p
for i in range(m):
sub2 = sub2 + ((pow(2,num_of_1_col[i],p)-1) + (pow(2,n-num_of_1_col[i],p)-1)) % p
print((sub1+sub2-n*m)%p)

天翼支付科技有限公司公司福利 16人发布