源码:
/* By @Joker_1212 */
#include <bits/stdc++.h>
#define ull unsigned long long
#define ll long long
using namespace std;
inline void pre()
{
#ifdef LOCAL
freopen("./in.in", "rb", stdin);
freopen("./out.out", "wb", stdout);
#endif
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
}
int arr[55][3]; // WBR
inline int eval(int beg, int a, int b, int end)
{
return (arr[a - 1][0] - arr[beg - 1][0]) + (arr[b - 1][1] - arr[a - 1][1]) + (arr[end - 1][2] - arr[b - 1][2]);
}
int main()
{
pre();
int n, m;
string line;
cin >> n >> m;
getline(cin, line);
for (int i = 1; i <= n; ++i)
{
getline(cin, line);
for (int j = 0; j < m; ++j)
{
if (line[j] == 'W')
++arr[i][1], ++arr[i][2];
else if (line[j] == 'B')
++arr[i][0], ++arr[i][2];
else if (line[j] == 'R')
++arr[i][0], ++arr[i][1];
}
arr[i][0] += arr[i - 1][0];
arr[i][1] += arr[i - 1][1];
arr[i][2] += arr[i - 1][2];
}
int mn = INT_MAX;
for (int i = 2; i < m - 1; ++i)
{
for (int j = i + 1; j < m; ++j)
{
int x = eval(1, i, j, n + 1);
if (mn > x)
mn = x;
}
}
cout << mn << endl;
return 0;
}
评测记录:https://www.luogu.com.cn/record/79530578
求大佬调错