首页 > 试题广场 >

小红的矩阵染色

[编程题]小红的矩阵染色
  • 热度指数:1515 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小红拿到了一个矩阵,初始有一些格子被染成了黑色。现在小红希望把最多k个未被染成黑色的格子染成红色,具体的计分方式是:如果一个红色格子下方相邻的格子也是红色,那么这个红色格子可以获得1分。
小红想知道,最多可以得到多少分?

输入描述:
第一行输入三个正整数n,m,k,代表矩阵的行数和列数、以及小红最多可以染色的格子数量。
接下来的n行,每行输入一个长度为m的字符串,用来表示矩阵的初始染色情况。'*'字符代表黑色,'o'字符代表白色。
1\leq n,m \leq 1000
1\leq k \leq n*m


输出描述:
一个整数,代表小红可以获得的最大分数。
示例1

输入

4 4 3
*o*o
oooo
****
oooo

输出

1

说明

将矩阵染色成如下样式即可('r'代表红色):
*r*o
oroo
****
oooo

示例2

输入

3 3 3
*o*
*o*
*o*

输出

2
头像 zhenghahahawda
发表于 2025-07-30 13:58:37
#include <iostream> #include <vector> #include <algorithm> using namespace std; bool cmp(int a1,int a2) { return a1>a2; } i 展开全文
头像 手有余湘
发表于 2025-07-25 22:04:40
import sys n,m,k=map(int,input().split()) table=[] for i in range(n): table.append(list(input())) result=[] for j in range(m): middle=[] f 展开全文
头像 Leoxm
发表于 2025-06-28 12:45:59
#include <stdio.h> #include <stdlib.h> int compare(const void* a, const void* b) { return (*(int*)b - * (int*)a); } int main() { 展开全文
头像 看那一片海
发表于 2025-07-14 11:06:50
#include <iostream> #include <vector> #include <algorithm> using namespace std; bool cmp(int num1,int num2){ return num1>nu 展开全文
头像 丨阿伟丨
发表于 2025-08-27 17:03:19
题目链接 小红的矩阵染色 题目描述 小红有一个 的矩阵,其中一些格子是黑色的 ('*'),另一些是白色的 ('o')。她最多可以把 个白色格子染成红色。 计分规则是:如果一个红色格子下方相邻的格子也是红色,那么这个红色的格子可以获得1分。请问小红最多可以得到多少分? 解题思路 这是一个典型的贪心 展开全文
头像 LebronChen666
发表于 2025-08-24 11:21:26
import java.util.*; import java.io.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) throws IOE 展开全文
头像 牛客295096510号
发表于 2025-07-20 22:07:42
n,m,k=input().split(' ') n,m,k=int(n),int(m),int(k) matr=[] for i in range(n): l=list(input()) matr.append(l) count_l=[] for col in range(m) 展开全文