Codeforces - 1108C. Nice Garland & 1108D. Diverse Garland 排列 | 枚举

发布于 2024-06-16 13:33:21 字数 2249 浏览 10 评论 0

题目

给你 n 个有 n 个字符的字符串, Nice Garland 定义为任意两个位置 i、j 的字符,如果 |i - j| % 3 == 0 && str[i].color = str[j].color ,这个串就是 Nice Garland,给你一个字符串,要你改变最少的字符,重新组装字符串,使得字符串是 Nice Garland

解析

使用枚举 {'R', 'G', 'B'} 三个字符的排列,然后每次遍历数组,去组合字符串,看每次需要改变多少字符,取最小需要改变的一个即可。

import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args){
        Scanner cin = new Scanner(new BufferedInputStream(System.in));
        PrintStream out = System.out;
        int n = cin.nextInt();
        String str = cin.next();
        char[] chs = str.toCharArray();
        char[] initArr = {'R', 'G', 'B'};
        char[] tmpArr = new char[3];
        char[] resPer = new char[3];
        int res = Integer.MAX_VALUE;
        for(int i = 0; i < 3; i++){
            for(int j = 0; j < 3; j++){
                for(int k = 0; k < 3; k++){
                    if(i == j || j == k || i == k)
                        continue;
                    tmpArr[0] = initArr[i];
                    tmpArr[1] = initArr[j];
                    tmpArr[2] = initArr[k];
                    chs = str.toCharArray(); //注意每次都要用原来的 str
                    int count = 0;
                    for(int p = 0; p < n; p++){
                        if(chs[p] != tmpArr[p%3]){
                            count++;
                            chs[p] = tmpArr[p%3];
                        }
                    }
                    if(count < res){
                        res = count;
                        for(int p = 0; p < 3; p++)
                            resPer[p] = tmpArr[p];
                    }
                }
            }
        }
        out.println(res);
        for(int i = 0; i < n; i++)
            out.print(resPer[i%3]);
        out.println();
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
24 人气
更多

推荐作者

我们的影子

文章 0 评论 0

素年丶

文章 0 评论 0

南笙

文章 0 评论 0

18215568913

文章 0 评论 0

qq_xk7Ean

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文