注:代码能A,但如果想过 N ,M <= 1000 的数据该怎么优化?
机构数据[大悲]
#include<bits/stdc++.h>
using namespace std;
char a[100][100];
int n,m;
int minn=1e7;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=1;i<=n-2;i++)//白色边界
{
for(int j=i;j<n;j++)//蓝色边界
{
int sum=0;
for(int k=1;k<=i;k++)//枚举白色区域行
for(int g=1;g<=m;g++)//枚举白色区域列
if(a[k][g]!='W')//此位置不是白色,就要涂
sum++;
for(int k=i+1;k<=j;k++)//枚举蓝色区域行
for(int g=1;g<=m;g++)//枚举蓝色区域列
if(a[k][g]!='B')//此位置不是蓝色,就要涂
sum++;
for(int k=j+1;k<=n;k++)//枚举红色区域行
for(int g=1;g<=m;g++)//枚举红色区域列
if(a[k][g]!='R')//此位置不是红色,就要涂(累
sum++;
minn=min(sum,minn);//求要涂的次数最小值
}
}
cout<<minn;
return 0;
}