小红的矩阵染色

实现代码:

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);
    }
相关推荐
装不满的克莱因瓶18 小时前
掌握生成对抗网络(GAN)的优化目标与评估指标——从博弈函数到生成质量衡量体系
人工智能·python·深度学习·算法·机器学习
技术小黑18 小时前
CNN算法实战系列06 | InceptionV1实现猴痘病识别
深度学习·算法·cnn·inceptionv1
swordbob18 小时前
缓存延迟双删的两种策略
java·缓存
凡人叶枫18 小时前
Effective C++ 条款08:别让异常逃离析构函数
java·linux·数据库·c++·嵌入式开发
云烟成雨TD18 小时前
Agent Scope Java 2.x 系列【4】模型层
java·人工智能·agent
云淡风轻~窗明几净19 小时前
角谷猜想的任意算法测试
数据结构·人工智能·算法
云烟成雨TD19 小时前
Agent Scope Java 2.x 系列【5】智能体抽象层
java·人工智能·agent
happygrilclh19 小时前
赚外快了:等离子表面处理机电源算法需求说明
算法
阿伟AI说19 小时前
Codex 桌面版接入国产模型系列二:Codex++
java·开源软件·ai编程·腾讯云ai代码助手
ji1985944319 小时前
MATLAB 求散点曲线斜率
开发语言·算法·matlab