题解 | 小红的矩阵染色

小红的矩阵染色

https://www.nowcoder.com/practice/dcbaf862c0e046d79e9cd297abd76bcf

m, n, k = map(int, input().split())
matrix = [input() for _ in range(m)]
result = []#求出所有可以染色得分的空格,并存储在列表中降序排列
for j in range(n):
    cur = 0
    for i in range(m):
        if matrix[i][j] == "o":
            cur += 1
        else:
            if cur > 1:
                result.append(cur)
            cur = 0
    if cur > 1:
        result.append(cur)
result.sort(reverse=True)

if k >= sum(result):#计算染色k个空格,可以获得的最大分数
    print(sum(result) - len(result))
else:
    ans = 0
    for c in result:
        if k > c:
            ans += c - 1
            k -= c
        else:
            ans += k - 1
            break
    print(ans)

全部评论

相关推荐

路过的周先森:我就喜欢这种无限复活+筛选快的,比那些投进去就没声还占用投递次数的好多了
投递快手等公司7个岗位
点赞 评论 收藏
分享
10-17 17:54
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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