题解 AT833 【縞模様】

· · 题解

呀,第一篇题解,(虽然有点晚,都已经大一了才写了个入门题的题解)

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b,pi[1000],sum = 0, ans = 9999999;
    cin>>a>>b;
    for(int i = 0;i<a;i++){
        cin>>pi[i];
    }
    for(int x = 1;x<=10;x++){
        for(int y = 1;y<=10;y++){
            int c[1000];
            for(int i = 0;i<a;i++){
                c[i]=pi[i];
            }
            sum = 0;
            if(x==y) continue;
            if(c[0]!=x) {
                c[0] = x;
                sum++;
                if(sum>ans) continue;
            }
            for(int i = 1;i<a;i++){
                if(c[i-1]==x&&c[i]==y) {
                    continue;
                }
                else if(c[i-1]==y&&c[i]==x) {
                    continue;
                }
                else{
                    if(c[i-1]==x) c[i] = y;
                    else if(c[i-1]==y) c[i] = x;
                    sum++;
                    if(sum>ans) break;
                }
            } 
            ans = min(sum,ans);
        }
    }
    cout<<ans*b<<endl;

}

这个题可以用暴力枚举搞定,没啥技术含量,控制好逻辑,记得加回车