小红的矩阵染色

实现代码:

java 复制代码
 public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int k = sc.nextInt();
        
        char[][] grid = new char[n][];
        for (int i = 0; i < n; i++) {
            grid[i] = sc.next().toCharArray();
        }
        
        List<Integer> segments = new ArrayList<>();
        
        // 按列找空白段
        for (int col = 0; col < m; col++) {
            int len = 0;
            for (int row = 0; row < n; row++) {
                if (grid[row][col] == 'o') {
                    len++;
                } else { // '*'
                    if (len > 0) {
                        segments.add(len);
                        len = 0;
                    }
                }
            }
            if (len > 0) {
                segments.add(len);
            }
        }
        
        // 段长度从大到小排序
        segments.sort((a, b) -> b - a);
        
        int maxScore = 0;
        long prefixSum = 0;
        for (int p = 0; p < segments.size(); p++) {
            prefixSum += segments.get(p);
            long totalColored = Math.min(prefixSum, k);
            int score = (int)(totalColored - (p + 1)); // p+1 是段数
            if (score > maxScore) {
                maxScore = score;
            }
        }
        
        System.out.println(maxScore);
    }
相关推荐
好好学习叭~13 小时前
正则表达式
java·开发语言
重生之我是Java开发战士13 小时前
【递归、搜索与回溯】FloodFill算法:图像渲染,岛屿数量,岛屿的最大面积,被围绕的区域,太平洋大西洋水流问题,扫雷游戏,衣橱整理
算法·leetcode·深度优先
YUANQIANG202413 小时前
PPO算法典型思路
算法·机器学习
twc82913 小时前
大模型评估指标简要说明
算法·大模型·bleu
淀粉肠kk13 小时前
【C++】C++11可变参数模板和emplace系列接口
算法
草莓熊Lotso13 小时前
MySQL 内置函数指南:日期、字符串、数学函数实战
android·java·linux·运维·数据库·c++·mysql
ab15151713 小时前
3.21二刷基础125、122、130,完成进阶65
开发语言·c++·算法
计算机学姐13 小时前
基于SpringBoot的蛋糕烘焙销售服务系统
java·spring boot·后端·spring·tomcat·intellij-idea·mybatis
hongtianzai13 小时前
Go vs Java:终极性能对决
java·开发语言·golang
j_xxx404_13 小时前
力扣--分治(快速排序)算法题I:颜色分类,排序数组
数据结构·c++·算法·leetcode·排序算法