题解 | 矩形计数

矩形计数

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)



全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务