小红的矩阵染色

实现代码:

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);
    }
相关推荐
WuChao_JMUer2 小时前
YOLO26 on RDK S100P 端侧部署技术报告
人工智能·算法·yolo·rdk
Ro Jace2 小时前
传统雷达信号分选方法之SDIF:Improved algorithm for the deinterleaving of radar pulses
网络·人工智能·算法
毕设源码-朱学姐2 小时前
【开题答辩全过程】以 基于SpringBoot Vue居家办公管理系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
小杨同学492 小时前
【嵌入式 C 语言实战】手动实现字符串四大核心函数(strcpy/strcat/strlen/strcmp)
后端·深度学习·算法
小当家.1052 小时前
《Java操作Excel实战教程:Apache POI从入门到精通》
java·apache·excel
Gofarlic_OMS2 小时前
MATLAB许可证闲置自动检测与智能提醒
java·大数据·运维·开发语言·人工智能·算法·matlab
yaoxin5211232 小时前
293. Java Stream API - 从 HTTP 源创建 Stream
java·开发语言·http
哟哟耶耶2 小时前
java-MySql下载与配置环境变量
java·开发语言·mysql
间彧2 小时前
通过自定义ClassLoader实现热部署与类隔离
java