我没什么特别思路,就暴力
#include<iostream>
#include<string>
using namespace std;
int main(){
string u;
int a[50][50];
int y[50][50];
int h[50][50];
int n/*行*/,m/*列*/,ji=0,lei=2147483647;
string k;
cin>>n>>m;
for(int i=1;i<=n;i++){//输入
cin>>u;
for(int j=1;j<=m;j++){
k=u.substr(j-1,j);
if(k=="W")
y[j][i]=1;
else if(k=="B")
y[j][i]=2;
else
y[j][i]=3;
}
}
for(int i=1;i<=n-2;i++){
for(int j=1;j<n-i;i++){
ji=0;
for(int q=1;q<=i;q++)//白
for(int o=1;o<=m;o++)
h[q][o]=1;
for(int q=i+1;q<=j;q++)//蓝
for(int o=1;o<=m;o++)
h[q][o]=2;
for(int q=j+1;q<=n;q++)//红
for(int o=1;o<=m;o++)
h[q][o]=3;
for(int q=1;q<=n;q++)//统计
for(int o=1;o<=m;o++)
if(y[q][o]!=h[q][o])
ji++;
if(ji<lei)
lei=ji;
}
}
cout<<lei;
}